我不是专家,但您可以使用常规的预定义模型来做到这一点。
Item_Type
Item_Attribute
Item
Item_Type 将有一个名称变量(不是唯一的),可能还有您想要的任何其他常见属性。然后它将有一个has_many Item_Attributes
关系,而Item_Attribute
belongs_to Item_Type
.
所以我会创建一个视图,允许用户添加新Item_Type
的 s ,然后Item_Attribute
为这些项目类型定义 s 。
然后您可以拥有实际Item
模型,其中的每个实例都存在Item_Type
于库存中。Item
属于Item_Type
, 和Item_Type
has_many
Items
,Item
不能有 null Item_Type
。
因此,用户创建了一个Item_Type
名为“BIKE”的新名称,然后添加了几个Item_Attribute
s,例如“Mountain”和“Red”。然后用户可以创建一个Item
与“BIKE”有关系的新的Item_Type
。
如果他们想添加一辆蓝色山地自行车而不是红色自行车,他们需要再次执行该过程,添加另一个Item_Type
“BIKE”,除了添加“Blue”作为Item_Type
s的新实例的属性Item_Attribute
。