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を受け取り続けますか?」nil: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 に答える