未定义的方法`+'代表nil:NilClass

时间:2014-03-13 07:36:33

标签: ruby-on-rails ruby

我想在网站上完成购物车零件。我第一次将项目添加到购物车中是可以的,但第二次使用相同的项目我会收到错误:

undefined method `+' for nil:NilClass

Extracted source (around line #19):

current_item = line_items.find_by_product_id(product_id)  
if current_item  
  current_item.quantity += 1  
else  
  current_item = line_items.build(product_id: product_id)  
end  

有什么问题?

感谢。

3 个答案:

答案 0 :(得分:1)

数据库中的数量字段可能为空。将侵权行更改为:

current_item.quantity = current_item.quantity.to_i + 1

答案 1 :(得分:1)

nil.to_i返回0

因此请使用current_item.quantity = current_item.quantity.to_i + 1

答案 2 :(得分:1)

似乎current_item.quantitynil

尝试使用

设置默认值
...
if current_item
  current_item.quantity ||= 1 # sets to 1 if nil
  current_item.quantity += 1  
else
...

如果您将quantity存储在数据库中,请添加到您的迁移中,例如null: false, default: 1

希望它有所帮助。