rails控制器类中的ruby错误

时间:2013-03-22 12:27:41

标签: ruby-on-rails

我遇到了这种错误,早些时候它得到了正确但有些错误。

      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

请帮忙!

2 个答案:

答案 0 :(得分:0)

@cart.add_product似乎返回一个数字(Fixnum)而不是模型对象,正如您所期望的那样。如果您不知道如何解决这个问题,请告诉我们add_product

的实施情况

答案 1 :(得分:0)

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

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

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