2016-05-29 56 views
1

我的情况是:这是一个适合在rails中使用多态关联的场景吗?

订单有许多项目 项目属于订购

而且, 项目可以是产品或备用。

所以在这种情况下,我可以使用多态关联而不是使用product_id和spare_id并且具有零值,我可以使用多态关联吗?即存在类型字段,如果选择了类型产品,那么type_id将保存产品,如果类型为空闲,则type_id应该保留备用。 在这种情况下使用多态关联的想法是正确的吗?

+0

嗨,在这种情况下,我可以选择,如果它的产品或备件,但没有选择哪个产品或备件,我想订购的权利? –

回答

0

通常对于项目的混合情况下使用STI(与项目类型字段),它会有所不同ProductSpare给你,所以

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