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/