RoR:尝试绘制出复杂的模型关系

RoR : Trying to map out complex model relationships

我正在尝试构建一个用户独有的购物清单应用程序,因为系统中会有多个用户。用户可以创建自己的购物清单,在产品页面部分,用户可以 select 产品并将其保存到用户创建的列表中(将有一个下拉菜单 selection 在“添加到列表”按钮旁边,显示要在哪个列表中保存 selected 产品)。我最初已经绘制出关系模型,但是,我仍然不确定我是否遗漏了任何东西并希望提出改进建议。这就是我所做的,

**user.rb**
has_many :grocery_lists
has_many :grocery_list_products through: :grocery_lists

**grocery_list.rb**
belongs_to :user
has_many :grocery_list_products
has_many :products through: :grocery_list_products

**product.rb**
has_many :grocery_lists
has_many :grocery_lists_products

**grocery_list_product.rb** #to connect grocery_list with product
belongs_to :product
belongs_to :grocery_list
belongs_to :user 

非常感谢您的建议和提示。谢谢。

为进一步清楚起见进行了编辑。

这有许多不同的角度,可能会使事情变得更复杂(即:路上是否会有购物车或收银台),但请继续您在此处拥有的内容:

您在 product.rb

下将 :grocery_list_products 拼错为 :grocery_lists_products

通过grocery_list_products删除对:user的引用table以及相关的:throughs等...它是多余的,你可以通过[=27得到它=] table.

如果产品列表是通用的,如果产品被更改或删除会怎样?它会自动将其从列表中删除吗?如果是这样,那么您需要在 has many :grocery_list_products 上添加一个 dependent: :destroy。实际上你应该考虑其中大多数的 dependent: :destroy 逻辑,或者用 'deactivated' 列或其他东西来处理它们。