私は商品とカートがあるアプリケーションを持っています。製品は、カートに追加された後にのみカートに所属し、その後、カートはhas_many Productsになります。しかし、製品がカートに追加される前は、関連性のないスタンドアロンモデルになっています。これをレールでどのようにキャプチャするのですか?レールにbelongs_to「時には」概念がありますか?
Cart_idを商品表に追加する必要があるかどうか混乱します。
私は商品とカートがあるアプリケーションを持っています。製品は、カートに追加された後にのみカートに所属し、その後、カートはhas_many Productsになります。しかし、製品がカートに追加される前は、関連性のないスタンドアロンモデルになっています。これをレールでどのようにキャプチャするのですか?レールにbelongs_to「時には」概念がありますか?
Cart_idを商品表に追加する必要があるかどうか混乱します。
上記のレールガイドは間違いありません。それはちょうどこの問題を取ります。
あなたの場合、「製品」クラスの個々のインスタンスは何を表していますか?製品インスタンスはタイプの商品ですか、その商品の物理的なインスタンスですか?
おそらく前者が理にかなっています。その場合、Productsテーブルの個々の行は個々のタイプの製品を表します。おそらくcart_id列は必要ありません。代わりに、顧客が個々の製品を購入するケースを表すために、結合テーブル、または別のモデル(Orders)が望ましいとします。
belongs_to :cart
とbelongs_to :product
のLineItem
モデルを作成します。次にカートでこれを行うことができます:
has_many :products, :through => :line_items