2016-05-29 24 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