2017-07-26 72 views
0

我有這樣一類的Rails應用程序紅寶石內省:如何問一個方法定義的紅寶石?

class User < ActiveRecord::Base 
    .. 
end 

類沒有一個方法調用者FOO? 也沒有任何include ...文件。 但User.new.foo?確實響應,那麼我怎麼能問這個方法在哪裏定義?

+0

哎呀,我認爲它在這裏https://stackoverflow.com/questions/175655/how-to-find-where-a-method-is-defined-at-runtime –

+0

從您提供的鏈接:' User.new.method(?:富)owner'。 –

回答

2
(byebug) User.last.method(:foo?) 
#<Method: User(#<Module:0x007fd4c0a03da8>)#foo?> 
(byebug) User.last.method(:foo?).source_location 
["/Users/user1/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/activerecord-4.2.7/lib/active_record/enum.rb", 122] 
(byebug)