如何增加购物车Rails的数量

时间:2017-02-28 11:11:58

标签: ruby-on-rails ruby cart

我正在为咖啡馆做推车,一切正常,除了增加数量。当我把食物添加到购物车时...它只是将同样的食物公开......而不是增加数量。我想制作一个可以检查的解决方案......如果食物已经在购物车中...而不是添加它只会增加数量。下面是我的控制器,添加食物到购物车。任何帮助将不胜感激

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

1 个答案:

答案 0 :(得分:0)

您应该检查if session[:cart][cafe_id][food_id].present?而不是if session[:cart][food_id].present?