通过Active Record获取嵌套对象集合

时间:2011-10-07 17:00:11

标签: ruby-on-rails ruby activerecord

我正在尝试通过活动记录检索对象列表但没有成功

我有一个模型:商店有很多产品,产品有一个供应商

class Store < ActiveRecord::Base
  has_many :products
end

class Product < ActiveRecord::Base
  belongs_to  :supplier
  belongs_to  :store
end

class Supplier < ActiveRecord::Base
  has_many :products
end

我正在尝试从这样的商店槽产品中获取供应商列表:

self.products.supplier

这给了我一个来自ActiveRecord :: Relation

的未定义的方法异常'供应商'

我应该为此制作一个自定义查找器还是有更好的方法?

1 个答案:

答案 0 :(得分:1)

您可以使用

self.products.map{|product| product.suppliers}

或者你可以这样做,这在我看来更好

class Store
  has_many :suppliers, :through => :products
end

# Then you can use:
store.suppliers