我不理解“line_items_controller.rb”中的第5行: 我注意到Rails 3.1的代码没有这样的行,而在Rails 3.2的代码中它有这样的行。 从Java世界来看,很难说这里使用了什么样的魔法红宝石:( 我被困在了解Rails文档。
e.g。 button_to有signiture button_to(name,options = {},html_options = {})
但是在代码中,你可以添加像
这样的参数<%= button_to 'Empty cart', @cart, :method => :delete, :confirm => 'Are you sure?' %>
我想@cart不应该在那里......
def create
@cart = current_cart #this is a function method
product = Product.find(params[:product_id])
@line_item = @cart.add_product(product.id)
@line_item.product = product
respond_to do |format|
if @line_item.save
format.html { redirect_to @line_item.cart }
format.json { render json: @line_item,
status: :created, location: @line_item }
else
format.html { render action: "new" }
format.json { render json: @line_item.errors,
status: :unprocessable_entity }
end
end
end
此处项目的完整源代码: https://github.com/ilovejs/depot_i/blob/master/app/controllers/line_items_controller.rb
答案 0 :(得分:1)
似乎@cart.add_product(product.id)
如果要向@cart
添加产品,@line_item.product = product
似乎也在做同样的事情
在没有看到Cart
模型代码的情况下很难说清楚,但我认为
删除@line_item.product = product
行也应该没有问题
答案 1 :(得分:1)
Replaec:
@line_item = @cart.add_product(product.id)
@line_item.product = product
与
@cart.add_product(product.id)
然后
@line_item
下面的参考文献可能应该是@cart。