我創建了一個購物車,其中用戶可以增加或減少某個項目的數量記錄後保存記錄。逐項遞減項目的數量時出現問題。例如,當我有「2倍比薩」,其中2是比薩的數量時,我將其數量減1。那麼我有「1倍比薩」。當我再次遞減數量時,出現錯誤can't modify frozen Hash
。如何跳過破壞
我的代碼:
def RemoveItemQuantity
@cart = current_cart
menu = Menu.find(params[:menu_id])
@line_item = @cart.sub_menu(menu.id)
if @line_item != nil
respond_to do |format|
if @line_item.save
# ...
end
end
end
end
def sub_menu(menu_id)
current_item = line_items.where(:menu_id => menu_id).first
if current_item
current_item.quantity -= 1
end
if current_item.quantity == 0
current_item.destroy
end
current_item
end
當一個項目的量變0
,我破壞了current_item
。之後,由於can't modify frozen Hash
錯誤,無法保存記錄。我在這裏做錯了什麼?