我正在尝试在我的购物车控制器中创建一个基本设置,如果已存在商品记录,我将逐步增加添加到购物车的商品的数量值。
我目前有:
class ItemsController < ApplicationController
def create
@product = Product.find(params[:product_id])
if @item.new_record?
@item = Item.create!(:cart => current_cart, :product => @product, :quantity => 1, :unit_price => @product.price)
else
@item.increment! :quantity
end
redirect_to cart_path(current_cart.id)
end
end
但是我一直收到错误undefined method
new_record?'为零:NilClass`
人们可以提供任何帮助解决这个问题,非常感谢!
答案 0 :(得分:2)
你没有在任何地方宣布@item。在此之前这就是错误即将到来的原因
试试这段代码
def create
@product = Product.find(params[:product_id])
if !current_cart.items.exists?(:product_id => @product.id)
@item = Item.create!(:cart => current_cart, :product => @product, :quantity => 1, :unit_price => @product.price)
else
current_cart.items.find(:first, :conditions =>{:product_id => @product.id}).increment! :quantity
end
redirect_to cart_path(current_cart.id)
end
这应该可以解决您的问题