这是在rails中使用多态关联的合适场景吗?

时间:2016-05-29 16:15:33

标签: ruby-on-rails

我的情景是:

订单有很多项目 项目属于订单

和, item可以是产品或备件。

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

1 个答案:

答案 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