对于常规方法,我可以调用obj.method(:name).source_location
并且效果很好,但如果我为关联执行此操作,source_location
将我指向.../activerecord-4.2.0/lib/active_record/associations/builder/association.rb
是否有类似的关联?
我正在与Spree一起使用一堆扩展程序,并且有很多地方可以定义它,我可以grep
我的方式,但想知道是否有一个直接的方式比如source_location
答案 0 :(得分:2)
有一种方法reflect_on_association
可能对您有帮助。
Customer.reflect_on_association(:accounts).class_name #=> Account
klass = 'Account'.constantize
klass.method(:my_method).source_location