Rails - HABTM的不良影响和has_many一起使用?

时间:2012-03-02 07:44:23

标签: ruby-on-rails associations

我有一个协会,

Shop habtm Products
Product habtm Shops

Shop belongs_to Merchant

为方便起见,我还宣布了

Merchant has_many :products, :through=>:shops

在我的产品控制器中,

@products = current_user.merchant.products

当我<%=debug @products %>时,该集合包含同一对象的多个副本。

这是正常还是我通过一起宣布HABTM和has_many来搞砸自己?

如果这是正常的,有没有办法调用产品而不会出现重复的条目?

谢谢。

更新

我意识到这应该没问题,因为habtm介于ShopsProducts之间。 Merchant has_many Productsproduct.merchant。如果不在产品模型中设置外键,是否可以调用{{1}}之类的东西?

2 个答案:

答案 0 :(得分:0)

如果您的商家有一些商店提供相同的产品,这是正常行为。

答案 1 :(得分:0)

您可以使用distinct

@products = current_user.merchant.products.distinct(:product_id)