2014-03-13 40 views
0

我想在網站中完成購物車的一部分。我第一次添加物品到購物車中是可以的,但第二次使用相同的物品時我會收到錯誤:未定義方法`+'爲零:NilClass

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 

什麼是錯?

謝謝。

回答

1

數量字段在數據庫中可能爲空。侵權行更改爲類似:

current_item.quantity = current_item.quantity.to_i + 1 
+0

它的工作。謝謝。 – Ziu

1

nil.to_i回報0

所以使用current_item.quantity = current_item.quantity.to_i + 1

+0

如果數量值爲零,則current_item.quantity.to_i + = 1將返回錯誤。 –

1

好像current_item.quantitynil

嘗試如果您存儲在數據庫quantity設置默認值與

... 
if current_item 
    current_item.quantity ||= 1 # sets to 1 if nil 
    current_item.quantity += 1 
else 
... 

,然後添加到您的遷移像null: false, default: 1

希望它能幫助。

相關問題