我有:
def outer_method()
called_method()
end
def called_method()
puts "name of outer_method"
end
called_method
是否有可能获得outer_method
的名称而无需在__method__
中分配outer_method
并将其用作{{1}的自变量}?
答案 0 :(得分:1)
是的。一个老派的方法是这样:
def outer_method
called_method
end
def called_method
puts caller.first[/(?<=`).+(?=')/]
end
outer_method
# >> outer_method
一种更现代,更强大的方法是:
def outer_method
called_method
end
def called_method
puts caller_locations.first.label
end
outer_method
# >> outer_method