我是這樣一個聯合體,Rails - 通過一起使用HABTM和has_many的不良影響?
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
是Shops
和Products
之間。 Merchant has_many Products
。是否有可能在產品模型中沒有設置外鍵的情況下打電話給product.merchant
?
感謝您的快速反應!對不起,完成了,是否可以調用反向'product.merchant'?本質上,它就像現實世界。商家有很多商店和很多產品,但是1個產品型號只屬於一個商家。 – 2012-03-02 08:22:51
你可以定義'產品has_many:商家,:通過=>:商店'。然後,您將最終得到一個商品列表,其中應包含同一商家(可能是多次)的'product.merchants'。但是,這隻有在確保所有商家僅銷售他們自己的產品時纔有效。我建議添加另一個關係'產品belongs_to:商家',即使它有點多餘。然後你可以調用'product.merchant'。 – iltempo 2012-03-02 08:47:42
但在最後一種情況下,我必須在產品模型中設置foreign_key?我覺得這也是多餘的。產品=>商家關係應該已經定義(儘管不是嚴格的)。 – 2012-03-02 08:50:50