Ruby on Rails中的多态模型?

时间:2020-03-06 14:27:06  来源:igfitidea点击:

对于我正在从事的项目,商店有两种类型的产品:真实产品和一组产品。

在本次讨论中,我们称它们为" 1件T恤"和"一盒T恤"。对于一件T恤,我需要存储正常的属性价格,SKU,尺寸,颜色,描述等。对于一盒T恤,我需要具有价格,SKU,描述和T恤清单包括在内。

所以现在,我用Shirt和ShirtCollection模型来代表这一点。当我需要进行报告和订单管理并确保SKU是唯一的时,我会发现这会带来很多困难。

那么,代表这一点的最好方法是什么?

解决方案

我将有以下型号

T恤
TshirtBox has_many TshirtItems
TshirtBoxItems(这基本上是一个ID为tshirt_box_id和tshirt_id的联接表)

TshirtBoxItems是一种将T恤与盒子和将来可能存在的其他东西链接在一起的方法。

我们可以拥有一个Tshirt表,然后使用has_many:through关联对其进行自我引用。

T恤ID,SKU,价格,尺寸,颜色,说明,is_box

TshirtBox parent_tshirt(标识T恤的ID),child_tshirt(标识T恤的ID)

查看此链接以获取更多有关自我参照has_many的信息:通过http://www.aldenta.com/2006/11/10/has_many-through-self-referential-example/