我需要有多对多的产品和类别关系
所以我有
class Category < ActiveRecord::Base
has_many :categorizations
has_many :products, :through => :categorizations
end
class Product < ActiveRecord::Base
has_many :categorizations
has_many :categories, :through => :categorizations
end
分类的结构是这个
* PRODUCT_ID (primary key, foreign key to PRODUCTS)
* CATEGORY_ID (primary key, foreign key to CATEGORIES)
* QUANTITY
在我的控制器中,我正在通过此
创建类别和产品@new_product = Product.create :name => "test"
@new_category = Category.create :name => "test category"
如何连接这两个以及如何设置数量
如果我的记忆正确地为我提供了一对多,这就是它的完成方式。但随着我失去了许多对很多
@ new_product.catagory&lt;&lt; @new_category
答案 0 :(得分:3)
如果您有多个具有元数据的关联(即通过多个关联),则应明确创建关联对象。
@new_product = Product.create(:name => "test")
@new_category = Category.create(:name => "test category")
@association = Categorization.create(:product => @new_product, :category => @new_category, :quantity => 5)
您没有在上面显示,但请记住,您需要为关联创建一个模型,以便将其与has_many:through一起使用。
class Categorization < ActiveRecord::Base
belongs_to :product
belongs_to :category
end