所以我假设我有一个类方法call_me_once
。有没有方法来检查班级名称?
例如call_me_once.my_class_name
?
答案 0 :(得分:2)
如果您正在寻找方法的类名,有两种简单的方法可以实现这一点,每种方法都取决于您拥有的方法类型。如果是类方法,那么您可以使用Method#receiver
,如:
class Test
def cls_method
puts "Class Method"
end
def some_method
puts "Instance Method"
end
end
Test.method(:cls_method).receiver # => Test
如果您正在处理实例方法,那么您将需要使用Method#owner
方法:
Test.instance_method(:some_method).owner # => Test
如果你不知道你是否事先收到了一个类或实例方法,你可以检查一下这个方法是否会响应receiver
类方法和实例方法不会。
答案 1 :(得分:0)
可以使用
检查班级call_me_once.class