Rails两种模型之间的关系
问题描述:
有没有一种方法可以确定Rails在两个模型之间动态创建的关系方法?Rails两种模型之间的关系
例如:
unknown_method_i_wish_existed(class_name_1, class_name_2)
# awesome logic
# returns the relationship method name going from class_name_1 to class_name_2
end
看着Rails的API,但没有在我的尖叫,它可以做到这一点。
从本质上讲,这些方法的逆:http://api.rubyonrails.org/classes/ActiveRecord/Reflection/ClassMethods.html#method-i-reflect_on_association
答
您正在寻找这样的事情?
def reflection_names_between(from, to)
from.reflections.select { |name, refl| refl.klass == to }.values.map(&:macro)
end
# For a Car that has one :owner and many :passengers
reflection_names_between(Car, User) # => [:belongs_to, :has_many]