0

この種のエラーが発生しています。以前は適切に着用していましたが、エラーの原因の一部です。

      undefined method `save' for 2:Fixnum

そして、これは line_item_controller.rb/create の私のコードです

def create
  @cart = current_cart
  product = Product.find(params[:product_id])
  @line_item = @cart.add_product(product.id)

  respond_to do |format|
    if @line_item.save
      format.html { redirect_to store_url}
      format.js   { @current_item = @line_item }
      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

助けてください!

4

2 に答える 2

0

@cart.add_productFixnumご想像のとおり、モデル オブジェクトではなく数値 ( ) を返すようです。それを修正する方法がわからない場合は、 の実装を見せてくださいadd_product

于 2013-03-22T12:31:49.367 に答える
0

add_productメソッドが期待する製品ではなく整数を返しているようです。

これは、@line_item.saveが に評価されていることを意味し<some number>.saveます。これが、エラーが発生する理由です。

add_productID ではなくオブジェクトが返されることを確認してください。

于 2013-03-22T12:32:06.640 に答える