2016-05-29 6 views
1

私のシナリオは次のとおりです。これは、レールで多形関連を使用するのに適したシナリオですか?

注文は 項目は、製品やスペアをすることができ

そして、 アイテムを注文するために属する多くのアイテムを持っています。

この場合、product_idとspare_idを使用する代わりにnil値を使用する代わりに、多相関連を使用できますか?すなわち、タイプの商品がある場合、タイプの商品が選択された後、商品のタイプが保持され、タイプがスペアであればタイプIDがスペアを保持するはずです。 このシナリオでは、ポリモルフィックアソシエーションを使用することを考えていますか?アイテムの混合の場合のために通常

+0

こんにちは、この場合、私はその製品またはスペアは選択できますが、どの製品またはスペアを注文したいのですか? –

答えて

0

それは、あなたのためSpareからそう

class Item < AR:Base 
    belongs_to :order 
    # has_field :type 
end 

class Spare < Item; end 
class Product < Item ;end 

Productを異なります(項目のタイプフィールドを持つ)STIを使用して、製品またはスペア、あるいは項目を選択することができます以下のように:

Product.all 
Spare.all 
Item.all 
関連する問題