我遇到了这种错误,早些时候它得到了正确但有些错误。
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
请帮忙!
答案 0 :(得分:0)
@cart.add_product
似乎返回一个数字(Fixnum
)而不是模型对象,正如您所期望的那样。如果您不知道如何解决这个问题,请告诉我们add_product
。
答案 1 :(得分:0)
看起来您的add_product
方法返回的是整数而不是您期望的产品。
这意味着@line_item.save
正在评估<some number>.save
,这就是您收到错误的原因。
检查add_product
并确保它返回对象而不是id。