Zha*_* Yu 3 ruby metaprogramming class instance method-missing
我想知道定义了哪个类method_missing.它在Object中定义.
如何确定层次结构中的哪个类覆盖它?
您可以使用UnboundMethod#owner方法来检查方法的实现位置:
class A
def method_missing(*args)
# do something
end
end
method = A.instance_method(:method_missing)
method.owner
# => A
Run Code Online (Sandbox Code Playgroud)
注意:如果该方法在模块中实现(稍后将其混合到某个类层次结构中),owner则将返回此模块.