Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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 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

like image 645
Rajkamal Subramanian Avatar asked Aug 30 '11 15:08

Rajkamal Subramanian


2 Answers

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

like image 95
Chowlett Avatar answered Oct 17 '22 06:10

Chowlett


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
like image 34
Jörg W Mittag Avatar answered Oct 17 '22 05:10

Jörg W Mittag