增加购物车数量RoR

时间:2012-11-03 13:09:50

标签: ruby-on-rails ruby-on-rails-3 if-statement

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

我目前有:

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`

人们可以提供任何帮助解决这个问题,非常感谢!

1 个答案:

答案 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

这应该可以解决您的问题