开发者

Determine the class to which a method belongs in rails

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

I want to know the class or module to which the "resources" method belongs. If i search for "resources" method in http://apidock.com/rails/ (in the search text box provided), a list of classes开发者_如何学Python are appearing which has the method name "resources". Confused, with knowing the origin of the method.

Is their any command which i can use in puts to see the origin.

The question is bit of beginners level.

Thanks


Ruby is an object-oriented language. And while methods aren't objects in Ruby, you can ask Ruby to give you a Method object representing the method in question, and then you can simply tell that Method to give you its owner:

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


More enlightening than searching for resources is searching for draw, since that method must do something with the block passed in.

Indeed, we find the source code for draw, which shows that the supplied block is executed in the context of a Mapper, which includes Resources, which (finally!) defines resources


Assume that current_user is an instance of class User, you can call method function to check whether the method_name belong to class User. Example

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

Hope this help you!

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜