首页 > 解决方案 > 从调用函数的位置获取源代码/从回溯获取最后一个函数

问题描述

基本上这里问了同样的问题,但后来是一个 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

标签: ruby-on-railsruby

解决方案


caller_locations(1,1)[0].label

如果将其提取到方法中,则可能需要修改 caller_locations 的第一个参数以进一步查找堆栈跟踪。


推荐阅读