2

我正在尝试在我的购物车控制器中创建一个基本设置,如果项目记录已经存在,这将允许我逐步增加添加到购物车的产品的数量值。

我目前有:

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 methodnew_record?对于零:NilClass`

人们可以提供任何帮助来解决这个问题,我们将不胜感激!

4

1 回答 1

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

这应该可以解决您的问题

于 2012-11-03T13:11:20.350 回答