【问题标题】:Finding the caller method in Ruby [duplicate]在Ruby中查找调用者方法[重复]
【发布时间】:2012-08-26 05:58:34
【问题描述】:

可能重复:
How to get the name of the calling method?

我有一个方法#foo。可以从许多地方(范围)调用该方法。我需要#foo 来找出它是从哪里调用的。但不是堆栈跟踪(如#caller 返回的内容),我想要方法的纯名称(如#__callee__ 返回的内容)。 Ruby 中是否存在这种方法?

【问题讨论】:

标签: ruby


【解决方案1】:

您可以使用__method__。将它放在任何方法体中,它应该提供方法的名称。您可以随时使用.class.class.ancestors 获取上下文。

【讨论】:

  • 嗯,__method__ 的返回值似乎与 __callee__(当前范围的名称)相同。我想要以前的范围。所以,如果#bar 调用#foo,我想要一个可以从#foo 调用的方法,它会返回"bar"
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-12
  • 1970-01-01
  • 1970-01-01
  • 2012-06-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多