在Ruby中有一种方法可以告诉定义方法的位置吗?

时间:2011-12-18 21:29:21

标签: ruby-on-rails ruby

在Ruby中有一种方法可以告诉方法的定义吗?我正在浏览ruby-guide,并且有一行代码可以显示Post.all如何判断all的定义?

2 个答案:

答案 0 :(得分:17)

如果您想知道定义方法的文件和行,请使用

Post.method(:all).source_location

如果是C方法,它会为您[file, line]nil

答案 1 :(得分:7)

可以通过Method对象使用方法。在那时,作为owner属性。所以你可以这样做:

puts Post.method(:all).owner

这会告诉你定义方法的模块/类。