例如我有
class Order < ActiveRecord::Base
has_many :shippings
has_one :contact_information
belongs_to :shop
end
如何从Order获取关联对象数组。例如
Order.associations
# [:shipping, :contact_information, :shop]
答案 0 :(得分:5)
Order.reflect_on_all_associations.map(&:class_name)
您可以将一种关系作为参数传递:
Order.reflect_on_all_associations(:has_one)
了解ActiveRecord::Reflection::ClassMethods
刚才意识到,你已经问过对象的关联模型了。
所以,拥有我已经展示过的东西,你可以简单地按照以下几点做点什么:
@some_order = Order.first
associated_models = @some_order.class.reflect_on_all_associations.map(&:class_name)