【发布时间】:2013-06-17 17:52:11
【问题描述】:
我正在创建一个购物车。
所以我将有一个名为 LineItem 的模型。
每个购物车实例都有 1+ 个订单项。完成的交易也将成为“订单”。
因此,理论上,LineItem belongs_to Cart 和 belongs_to Order。
但是,数据库表会是什么样子? cart_id 和 order_id 在我的 LineItems 表中?
这意味着对于每条有效的购物车记录,都会有一个 order_id 为 nil(或为空)。同样,对于每个有效订单,都会有一个空的cart_id。
这似乎是一种非 Railsy 方式。
最好的方法是什么?多态关联?如果我应该这样做会是什么样子?
【问题讨论】:
-
你应该考虑一下 LineItem - Cart/Order 是否真的是一对多的关系。我认为这是多对多,所以首先你应该考虑 has_many through 或 has_and_belongs_to_many 关系。
-
一对多。 1 个购物车有许多 LineItems。 1 LineItem 不能属于多个购物车。但是,1 个 LineItem 可以属于一个购物车 + 一个订单。
标签: ruby-on-rails ruby-on-rails-3 associations