2011-12-18 8 views

risposta

17

Se volete sapere il file e la linea dove è definito il metodo, utilizzare

Post.method(:all).source_location 

Vi darà [file, line] o nil se si tratta di un metodo C.

7

Un metodo può essere utilizzato tramite un oggetto Method. Che a quel punto come attributo owner. Quindi puoi fare qualcosa del genere:

puts Post.method(:all).owner 

Questo ti dirà il modulo/classe che definisce il metodo.

+0

che non funziona per me - Ho appena ottenuto la classe indietro, anche se il metodo è stato definito in un modulo incluso – klochner

+0

@klochner quale classe? – Reactormonk

+0

sarebbe Post nel tuo esempio, anche se: tutto è stato definito in qualche altro modulo – klochner

Problemi correlati