红宝石内省:如何问一个方法定义的红宝石?
问题描述:
我有这样一类的Rails应用程序红宝石内省:如何问一个方法定义的红宝石?
class User < ActiveRecord::Base
..
end
类没有一个方法调用者FOO? 也没有任何include ...
文件。 但User.new.foo?确实响应,那么我怎么能问这个方法在哪里定义?
答
(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)
哎呀,我认为它在这里https://*.com/questions/175655/how-to-find-where-a-method-is-defined-at-runtime –
从您提供的链接:' User.new.method(?:富)owner'。 –