6

例如我有

class Order < ActiveRecord::Base
  has_many :shippings
  has_one :contact_information
  belongs_to :shop
end

如何从 Order 中获取关联对象的数组。例如

Order.associations
# [:shipping, :contact_information, :shop]
4

1 回答 1

9
Order.reflect_on_all_associations.map(&:class_name)

您可以将一种关系类型作为参数传递: Order.reflect_on_all_associations(:has_one)

阅读ActiveRecord::Reflection::ClassMethods

编辑

刚刚意识到,您已经询问了对象的关联模型。

因此,有了我已经展示的内容,您可以简单地按照以下方式进行操作:

associated_models = Order.reflect_on_all_associations.map(&:class_name)
于 2014-11-19T13:53:48.937 回答