如果用户点击"添加到购物车"按钮,我需要在我的导航栏div中增加一个数字,以显示他的购物车中有多少产品。
所以,我的按钮设置了remote: true
导航条的div为 count 。
我用来增加数字的功能:
$('#count').html(function(i, val) { return val*1+1 });
但如果我重新加载页面,那个值就会消失。我是如何才能让这个价值留在那里直到某些行动,比如' checkout'?
或许还有更好的方法吗?
答案 0 :(得分:0)
您需要将购物车商品存储到数据库中。点击按钮, 将触发一个ajax(
remote: true
)来更新购物车 在数据库中计算&将返回相应的js.erb文件 这将更新导航栏中的计数
答案 1 :(得分:0)
为用户创建模型方法或辅助方法,以查找活动购物车项目的计数。所以它也提供了准确的价值。
例如:
class User < ApplicationRecord
has_many :cart_items
def active_cart_items
return self.cart_items.group_by(&:product_id).count #.where(status:active) (optional)
end
end
在购物车计数器
中设置项目的ur_action.js.erb
下创建ur_controller
$('#count').html("<%=@user.active_cart_items%>")