我有很多通过协会不起作用。
Outfit有很多产品,产品有很多服装。因此我使用有很多通过。这是我的设置。
outfit.rb
WHERE agnt_name = exporter_name
product.rb
class Outfit < ActiveRecord::Base
belongs_to :user
has_many :outfit_products
has_many :products, through: :outfit_products
end
outfit_product.rb这是我的中间表
class Product < ActiveRecord::Base
belongs_to :user
belongs_to :category
has_many :outfit_products
has_many :outfits, through: :outfit_products
end
Outfit.products应返回与该装备相关的所有产品。 问题是它只显示1个产品。即使我有2件产品挂在同一套装上。请参阅下文。我有2个OutfitProduct对象具有相同的Outfit id和2个不同的产品。
class OutfitProduct < ActiveRecord::Base
belongs_to :outfit
belongs_to :product
end
当我装备。产品只展示了1件产品? 如何让它显示所有产品?
2.1.2 :037 > OutfitProduct.all
OutfitProduct Load (0.4ms) SELECT "outfit_products".* FROM "outfit_products"
=> #<ActiveRecord::Relation [#<OutfitProduct id: 2, product_id: nil, outfit_id: 15, created_at: "2015-10-28 10:36:01", updated_at: "2015-10-28 10:36:01">, #<OutfitProduct id: 3, product_id: 26, outfit_id: 15, created_at: "2015-10-28 10:36:10", updated_at: "2015-10-28 10:36:10">]>
答案 0 :(得分:1)
问题是它只显示1个产品。即使我有2个产品 与同一套装相关联
<强> 原因: 强>
其中一条outfit_products
条记录product_id
nil 为同一outfit_id: 15
,所以当你Outfit.find(15).products
时} product_id
nil 的那个被省略。