開始するには、注文と商品の2つのテーブルのみが必要です。 ここに私の質問の1つとして与えられた素晴らしいガイドがあります - guides.rubyonrails.org/association_basics.html
これを読んで、レールの関連性について熟知していますが、達成しようとしているものはかなりですご注文のモデルでは
関係
has_many :products
そして、あなたの製品のモデルが関係
belongs_to :order
を持っている - 以下の通りです
あなたの商品をオーダーにリンクさせることができます。次に、
order.products
のような通話を行うことができ、特定の注文のすべての商品が表示されます。
お客様の移行では、注文と商品の関連付けを行うために、商品にorder_idを付ける必要があります。注文に製品を保存するという点で
、あなたはあなたのビューで何らかの形にしてORDER_IDを関連付けると、paramsハッシュを通じて注文IDを送信することにより、どちらかあなたの製品コントローラでそれを行う、とだけ
を書きます
product = Product.create(params[:product])
か、あなたのコントローラーでそれを行うと
product.order_id = @order.id
@orderはあなたの製品のコントローラであなたのURLから注文IDから見つけることができると言うので、あなただけの
を言っメソッドを作ることができます
def find_order
@order = Order.find(params[:order_id])
end
、あなたが
before_filter :find_order, :only => :youractiontosaveproducts
を言うと何それが行いますが、あなたがそのアクションが呼び出される前に製品を保存するために見つけることであることができます任意のアクションの前に、コントローラの上部にあります。
答えのすべてのコードを書き留めるには少し残酷ですが、そのガイドといくつかの練習は正しい軌道に乗ります:)