0

我正在阅读使用 Rails 进行敏捷 Web 开发教程。有产品、订单项和购物车。

产品

class Product < ActiveRecord::Base
  attr_accessible :description, :image_url, :price, :title
  has_many :line_items
end

订单项

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

LineItems 控制器

class LineItemsController < ApplicationController

  def create
    @cart = current_cart
    product = Product.find(params[:product_id])
    @line_item = @cart.line_items.build(product: product)
    ....
  end

我的问题是关于上面创建操作中的第三行。我了解将 product_id 传递到 line_items.build() 但我不明白传递整个产品的作用是什么?

谢谢,迈克

4

1 回答 1

0

这将设置与产品的关系(如belongs_to产品)

您也可以手动设置 product_id,但您为什么要这样做。这种方式要简单得多。

Active Record 理解关系的概念——所以它会自动为你设置 id。

于 2012-08-07T21:04:26.313 回答