我正在为咖啡馆做推车,一切正常,除了增加数量。当我把食物添加到购物车时...它只是将同样的食物公开......而不是增加数量。我想制作一个可以检查的解决方案......如果食物已经在购物车中...而不是添加它只会增加数量。下面是我的控制器,添加食物到购物车。任何帮助将不胜感激
def add_to_cart
add_to_session(params[:cafe], params[:food])
redirect_to about_cafe_path(Cafe.find(params[:cafe]))
end
def show_cart
@cart = session[:cart]
end
def clear_cart
session[:cart] = {}
redirect_to show_cart_path
end
def remove
destroy_food(params[:cafe], params[:food])
redirect_to :back
end
private
def add_to_session(cafe_id, food_id)
if session[:cart][food_id].present?
session[:cart][cafe_id][food_id].quantity += 1
else
session[:cart][cafe_id].push food_id
end
end
def destroy_food(cafe_id, food_id)
session[:cart][cafe_id].delete food_id
end
答案 0 :(得分:0)
您应该检查if session[:cart][cafe_id][food_id].present?
而不是if session[:cart][food_id].present?