你需要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