使用(n继承)方法,可以通过以下方式实现定义它的接收器/类:
class A
def foo; end
end
class B < A
end
B.instance_method(:foo).owner # => A
使用(n继承)常量,与instance_method
或method
方法没有对应关系,所以它并不简单。是否有可能实现定义它的类?
class A
Foo = true
end
class B < A
end
B.some_way_to_extract_the_owner_of_constant(:Foo) # => A
答案 0 :(得分:5)
喜欢,下面的代码:
class A
Foo = true
end
class B < A
end
B.ancestors.find { |klass| klass.const_defined? :Foo, false }
# => A
答案 1 :(得分:2)
与@ Arup的答案类似,但我使用了Module#constants。
{
"phonenumber":"9123456789",
"password":"password"
}