0

我有以下设置

class Category < ActiveRecord::Base 

has_many :category_products
has_many :products, through: :category_products

end

class Product < ActiveRecord::Base

has_many :category_products
has_many :categories, through: :category_products

end

class CategoryProducts < ActiveRecord::Base
belongs_to :category
belongs_to :product
end

在 Rails 控制台中,我尝试使用以下命令分配 category_ids p.category_ids = [1,2] (其中 p = Product.first)我得到

NameError: uninitialized constant Product::CategoryProduct

有什么建议吗?

谢谢

4

2 回答 2

0

事实证明,rails 不喜欢连接模型的“multi”名称,创建了一个名为 categorization 的新模型,并且所有工作都 100%

于 2012-10-05T20:04:32.743 回答
0

你只是打错字。试试这个:

class Category < ActiveRecord::Base 
  has_many :categories_products
  has_many :products, through: :categories_products
end

class Product < ActiveRecord::Base
  has_many :categories_products
  has_many :categories, through: :categories_products
end

class CategoriesProduct < ActiveRecord::Base # singular association model define
  belongs_to :category
  belongs_to :product
end

注意协会名称。

模型:(categories_product没有s),它是 categories_products

于 2013-12-10T12:43:56.520 回答