我想知道定义了哪个类method_missing。 它在Object。中定义。
如何确定层次结构中的哪个类会覆盖它?
答案 0 :(得分:6)
您可以使用UnboundMethod#owner
方法检查方法的实施位置:
class A
def method_missing(*args)
# do something
end
end
method = A.instance_method(:method_missing)
method.owner
# => A
注意:如果方法是在模块中实现的(稍后将其混合到某个类层次结构中),owner
将返回此模块。