Ruby on rails 在Ruby中,有没有一种方法可以告诉方法是在哪里定义的?

Ruby on rails 在Ruby中,有没有一种方法可以告诉方法是在哪里定义的?,ruby-on-rails,ruby,Ruby On Rails,Ruby,在Ruby中,有没有一种方法可以告诉方法是在哪里定义的?我正在浏览ruby指南,其中有一行代码是Post.all我怎么才能知道all是在哪里定义的呢?如果您想知道定义方法的文件和行,请使用 Post.method(:all).source_location 如果是C方法,它将为您提供[文件,行]或nil。方法可以通过方法对象使用。在这一点上,它作为所有者属性。所以你可以这样做: puts Post.method(:all).owner 这将告诉您定义该方法的模块/类。这对我来说不起作用-我只

在Ruby中,有没有一种方法可以告诉方法是在哪里定义的?我正在浏览ruby指南,其中有一行代码是
Post.all
我怎么才能知道
all
是在哪里定义的呢?

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

Post.method(:all).source_location

如果是C方法,它将为您提供
[文件,行]
nil

方法可以通过方法对象使用。在这一点上,它作为
所有者
属性。所以你可以这样做:

puts Post.method(:all).owner

这将告诉您定义该方法的模块/类。

这对我来说不起作用-我只是拿回该类,即使该方法是在包含的模块中定义的。它将在您的示例中发布,即使:所有都是在其他模块中定义的