类别和子类别是独立模型。每个类别都有所有子类别。
创建产品时,管理员必须选择一个类别和子类别。
以下是我提出的模型
class Product < ActiveRecord::Base
belongs_to :category
end
class Category < ActiveRecord::Base
has_many :products
end
class Sub < ActiveRecord::Base
has_many :products
end
以下是产品的架构
create_table "products", force: :cascade do |t|
t.string "name"
t.integer "price"
t.integer "category_id"
t.integer "sub_id"
end
产品是用这样的东西创建的
Product.create(name: "Messi magnet custom",category_id: 1, sub_id: 2)
我正在查询属于特定类别和子类别的所有产品,例如
Product.where("category_id = ? AND sub_id = ?",9,3)
我所拥有的协会有什么问题吗?我能做些什么来改善这个?
答案 0 :(得分:1)
class Category < ActiveRecord::Base
has_many :products
has_many :sub_categories
end
class SubCategory < ActiveRecord::Base
has_many :products
belongs_to :category
#Sub_categories table now have a reference to category, i.e., category_id column
end
class Product < ActiveRecord::Base
belongs_to :category
belongs_to :sub #You need to add this too
end