确定方法在rails中所属的类

Ap::Application.routes.draw do resources :accounts end 

我想知道“resources”方法所属的类或模块。 如果我在http://apidock.com/rails/中搜索“资源”方法(在提供的搜索文本框中),则会出现一个类列表,其中包含方法名称“resources”。 困惑,知道方法的起源。

他们可以使用任何命令来看看原点。

这个问题有点初学者的水平。

谢谢

Ruby是一种面向对象的语言。 虽然方法不是Ruby中的对象,但您可以要求Ruby为您提供一个表示相关方法的Method对象,然后您可以简单地告诉Method给您的所有者:

 Ap::Application.routes.draw do p method(:resources).owner end 

比搜索resources更有启发性的是搜索draw ,因为该方法必须对传入的块执行某些操作。

实际上,我们找到了draw的源代码,它显示了提供的块是在Mapper的上下文中执行的,其中include s Resources ,它们最终定义了resources

假设current_user是User类的实例,可以调用method函数来检查method_name是否属于User类。 例

 current_user.method(:method_name).owner User.method(:method_name).owner 

希望这对你有所帮助!