在Ruby中有一种方法可以告诉定义方法的位置吗?我正在浏览ruby-guides,并且有一行代码读取 Post.all 如何判断 all 的定义?
Post.all
all
如果您想知道定义方法的文件和行,请使用
Post.method(:all).source_location
如果它是C方法,它会给你 [file, line] 或 nil .
[file, line]
nil
可以通过Method对象使用方法 . 在那一点上作为 owner 属性 . 所以你可以这样做:
owner
puts Post.method(:all).owner
这将告诉您定义方法的模块/类 .
2 回答
如果您想知道定义方法的文件和行,请使用
如果它是C方法,它会给你
[file, line]
或nil
.可以通过Method对象使用方法 . 在那一点上作为
owner
属性 . 所以你可以这样做:这将告诉您定义方法的模块/类 .