如何在 rails 中找到关联的源位置

How can I find the source location for a association in rails

对于常规方法,我可以调用 obj.method(:name).source_location 并且效果很好,但是如果我对关联这样做,source_location 会指向 .../activerecord-4.2.0/lib/active_record/associations/builder/association.rb 是否有类似的关联?

我正在使用 Spree 和一堆扩展,可以定义它的地方太多了,我可以 grep 我的方法,但想知道是否有直接的像 source_location

这样的前进方式

有一种方法reflect_on_association可能对您有所帮助。

Customer.reflect_on_association(:accounts).class_name #=> Account
klass = 'Account'.constantize
klass.method(:my_method).source_location