2017-07-26 5 views
0

は、私はクラスがメソッドの呼び出し元のfooを持っていないルビーのイントロスペクション:方法が定義されているルビに尋ねる方法は?

class User < ActiveRecord::Base 
    .. 
end 

レールのアプリでこのようなクラスがありますか? include ...ファイルもありません。 しかし、User.new.foo?このメソッドがどこに定義されているのか、私はどのように尋ねることができますか?

+0

おっと私はそれはあなたが提供されるリンクからここhttps://stackoverflow.com/questions/175655/how-to-find-where-a-method-is-defined-at-runtime –

+0

だと思います: ' User.new.method(:foo?)。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) 
関連する問題