你需要Categories桌子和Products桌子。在产品表中,您需要category_id:integer字段。
类别.rb
has_many :products
产品.rb
belongs_to :category
has_many :line_items
购物车.rb
has_many :line_items
LineItem.rbline_items (带有product_id:integer和的表格cart_id:integer)
belongs_to :cart
belongs_to :product
每次有人向其中添加 aproduct时cart,都会创建line_item一行,product_id如果cart_id客户订购了更多相同类型的产品,您还可以添加数量字段以进行更新。
对于男性和女性类型的产品,您可以在产品表中添加一个字段,该字段将标识此产品是为他或她准备的,for_men: boolean, default:true
产品.rb
belongs_to :category
has_many :line_items
scope :men, -> {where(for_men: true)}
scope :women, -> {where(for_men: false)}
如果你打电话
products = Product.all
products.women
它只会向您显示标记为女性类型的产品,其中for_men字段为false。
如果您按类别提取产品:
category = Category.find 1
category.products.women
会告诉你products的women。category