ruby-on-rails - 从调用函数的位置获取源代码/从回溯获取最后一个函数
问题描述
基本上这里问了同样的问题,但后来是一个 Ruby 解决方案。
我有一个类,具有填充类的静态函数:
class Message
attributes :message, :origin
def initialize(params)
self.origin = initialize_called_by
super
end
def self.failed_to_save
Message.new(message: 'Failed to save that thing!')
end
def self.failed_to_delete
Message.new(message: 'Failed to delete that thing!')
end
end
我希望origin
包含以下内容:
Message.failed_to_save.origin # failed_to_save
Message.failed_to_delete.origin # failed_to_delete
解决方案
caller_locations(1,1)[0].label
如果将其提取到方法中,则可能需要修改 caller_locations 的第一个参数以进一步查找堆栈跟踪。
推荐阅读
- java - java paho 库中的行为 setTimeToWait() 方法
- python - ModuleNotFoundError:没有名为“阈值”的模块
- javascript - 通过计算子元素中的跨度值对跨度进行排序
- php - 使用 PHP 获取客户端 IP
- algorithm - 基于玩家偏好的团队创建算法
- javascript - ReactJS - 如何找到 paymentId 的值并呈现它的值作为回报
- ruby-on-rails - 续集模型属性(db 列)的 instance.attribute_name 和 instance[:attribute_name] 是否完全相同?
- ios - HTTP POST 不适用于我的 ios 应用程序中的 Route 类,swift 4.1
- c# - 出现频率最高的单词图表
- python-2.7 - 使用 BS4 抓取网站数据时出错