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_product如您所料,似乎返回一个数字 ( Fixnum) 而不是模型对象。如果您不知道如何解决这个问题,请向我们展示add_product.

于 2013-03-22T12:31:49.367 回答
0

看起来您的add_product方法返回的是整数而不是您期望的产品。

这意味着@line_item.save正在评估为<some number>.save,这就是您收到错误的原因。

检查add_product并确保它返回对象而不是 id。

于 2013-03-22T12:32:06.640 回答