我想检查运行方法时是否从其他方法调用。
EX:
def method1(foo)
if # foo previous method == method2
#code
elsif # foo previous method == method 3
#code
end
end
def method2
method1(foo)
end
有办法做到这一点吗?
答案 0 :(得分:4)
是的,您可以使用caller
中的Kernel
caller[0]
,如http://www.ruby-doc.org/core-2.0.0/Kernel.html#method-i-caller中所述,但您需要从{{1}}返回的字符串中提取方法名称。 / p>
更新:提取方法名称的小正则表达式显示在https://stackoverflow.com/a/5100339/1008891。
中