Railsは初めてで、Rails 3.1を使用したアジャイルWeb開発にあるDepotプロジェクトに従っています。本が「ビルド」メソッドを使用したときに迷子になるまで、すべてが順調でした。
@cart = current_cart
product = Product.find(params[:product_id])
@line_item = @cart.line_items.build(product: product)
Google 検索の結果、.build メソッドは (テーブル間の関連付けを使用して) テーブル内に行を作成するためのよりクリーンな方法であることがわかりました。しかし、上記のコードでは、コードが次のようになると予想していました。
@line_item = @cart.line_items.build(product_id => params[:product_id])
作成者が product_id を取得するだけでなく、製品の行全体( product = Product.find(params[:product_id])) を保存しなければならなかった理由がわかりません...
私が理解できる以上のことはありますか?