我打算创建一个在线电子商务 网站,用于销售一些鞋类、服装等产品。但我无法弄清楚如何为此设置模式(表和所有)。我正在用 Ruby on Rails 和 Mysql 来做这件事,我是 ROR 的新手。
详情如下:-
我在产品中有不同的类别,例如鞋类、服装、配饰、包等,分别针对男士和女士.
买家选择产品并将其添加到购物车,然后继续结帐。我们只有一个货到付款类型的支付系统。我们不会创建任何用户帐户。没有用户帐户
我应该如何在 Rails 中使用所有 Controller 和模型实现这一点?
我应该为每个类别制作单独的表格吗?
我应该如何在男士和女士中对所需的产品进行分类?
以 Rails 方式提供完整的模式和关系表。
最佳答案
您需要Categories
表和Products
表。在产品表中,您需要 category_id:integer
字段。
Category.rb
has_many :products
Product.rb
belongs_to :category
has_many :line_items
购物车.rb
has_many :line_items
LineItem.rb(包含 product_id:integer
和 cart_id:integer
的表 line_items
)
belongs_to :cart
belongs_to :product
每次有人将 product
添加到 cart
时,它会创建一个 line_item
行,其中包含 product_id
和 cart_id
并且您还可以添加数量字段以在客户订购更多相同类型的产品时进行更新。
对于Men 和Women 类型的产品,您可以在产品表中添加一个字段来标识该产品是给他还是给她,for_men: bool 值,默认值:true
Product.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
将向您展示适合该类别
的女性
的产品
。
关于mysql - 在线商店的数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17874502/