我正在阅读Agile Web Development with Rails教程。有产品,LineItems和Carts。
产品
class Product < ActiveRecord::Base
attr_accessible :description, :image_url, :price, :title
has_many :line_items
end
的LineItem
class LineItem < ActiveRecord::Base
attr_accessible :cart_id, :product_id, :product
belongs_to :product
belongs_to :cart
end
车
class Cart < ActiveRecord::Base
has_many :line_items, dependent: :destroy
end
LineItemsController
class LineItemsController < ApplicationController
def create
@cart = current_cart
product = Product.find(params[:product_id])
@line_item = @cart.line_items.build(product: product)
....
end
我的问题是关于上面创建操作的第3行。我理解将product_id传递给line_items.build(),但我不明白传递整个产品的是什么?
感谢, 麦克
答案 0 :(得分:0)
这将设置与产品的关系(如在belongs_to产品中)
您也可以手动设置product_id,但为什么会这样。这样简单得多。
活动记录理解关系的概念 - 因此它会自动为您设置ID。