【问题标题】:Get source from where function was called from / get last function from backtrace从调用函数的位置获取源代码/从回溯获取最后一个函数
【发布时间】:2020-04-24 01:00:04
【问题描述】:

here 提出的问题基本相同,但随后是一个 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-rails ruby


    【解决方案1】:
    caller_locations(1,1)[0].label
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多