2011-07-11 7 views
0

私は商品とカートがあるアプリケーションを持っています。製品は、カートに追加された後にのみカートに所属し、その後、カートはhas_many Productsになります。しかし、製品がカートに追加される前は、関連性のないスタンドアロンモデルになっています。これをレールでどのようにキャプチャするのですか?レールにbelongs_to「時には」概念がありますか?

Cart_idを商品表に追加する必要があるかどうか混乱します。

答えて

3

上記のレールガイドは間違いありません。それはちょうどこの問題を取ります。

あなたの場合、「製品」クラスの個々のインスタンスは何を表していますか?製品インスタンスはタイプの商品ですか、その商品の物理的なインスタンスですか?

おそらく前者が理にかなっています。その場合、Productsテーブルの個々の行は個々のタイプの製品を表します。おそらくcart_id列は必要ありません。代わりに、顧客が個々の製品を購入するケースを表すために、結合テーブル、または別のモデル(Orders)が望ましいとします。

1

belongs_to :cartbelongs_to :productLineItemモデルを作成します。次にカートでこれを行うことができます:

has_many :products, :through => :line_items 
関連する問題