我想在网站上完成购物车零件。我第一次将项目添加到购物车中是可以的,但第二次使用相同的项目我会收到错误:
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
有什么问题?
感谢。
答案 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.quantity
是nil
。
尝试使用
设置默认值...
if current_item
current_item.quantity ||= 1 # sets to 1 if nil
current_item.quantity += 1
else
...
如果您将quantity
存储在数据库中,请添加到您的迁移中,例如null: false, default: 1
希望它有所帮助。