0

假设我有三个模型...

Product
 belongs_to :ProductCategory
 belongs_to :Manufacturer

ProductCategory
 has_many :products

Manufacturer
 has_many :products

我想通过调用 product_category.manufacturers 向 ProductCategory 的实例询问该 ProductCategory 中产品的制造商集。

我目前已经在 Products 模型中实现了它,如下所示:

def manufacturers
  Manufacturer.find(self.products.pluck(:manufacturer_id).uniq.to_a
end

有没有更好的“铁路方式”?

谢谢!

4

1 回答 1

2

是的,这是一个很好解决的问题,也是在 Rails 中使用关联的基本部分。你想要has_many :through

class ProductCategory
  has_many :products
  has_many :manufacturers, :through => :products
end
于 2012-12-11T13:41:23.450 回答