我的情景是:
订单有很多项目 项目属于订单
和, item可以是产品或备件。
所以在这种情况下,我可以使用多态关联,而不是使用product_id和spare_id并且具有nil值吗?即有一个类型的feild,如果选择了类型产品,那么type_id将保存产品,如果type是备用的,那么type_id应该保留备用。 在这种情况下使用多态关联的想法是正确的吗?
答案 0 :(得分:0)
通常情况下,如果项目混合使用 STI (项目的类型字段),则Product
与Spare
的区别不同,所以
class Item < AR:Base
belongs_to :order
# has_field :type
end
class Spare < Item; end
class Product < Item ;end
您可以选择产品或备件,甚至是项目,例如:
Product.all
Spare.all
Item.all