考慮這個片段中,距離著名的敏捷Web開發與鋼軌書(最新版):這個rails 3 .build方法到底在做什麼?
def create
@cart = current_cart
product = Product.find(params[:product_id])
@line_item = @cart.line_items.build(product: product)
這是一個一般的電子商務/庫的應用程序,而這個功能是「添加到購物車」按鈕一個特定的產品。這裏就是我很困惑:
我想象中的代碼是:
@line_item = line_items.build(product: product)
@line_item = line_items.build(cart: @cart)
基本上如果line_item
同時屬於一個產品和一個車,我單獨創建這些關係。
另外,如果購物車還沒有任何line_items
,那我該怎麼辦@cart.line_items
?我知道line_items.build(product: product)
將返回給我一個line_item
對象(我保存到@line_item
),但如果購物車中沒有line_items
,cart.line_items
如何工作?