Rails 5,Ajax,jQuery - 单击按钮时增加数字

时间:2016-11-08 10:53:09

标签: jquery ruby-on-rails ajax

如果用户点击"添加到购物车"按钮,我需要在我的导航栏div中增加一个数字,以显示他的购物车中有多少产品。

所以,我的按钮设置了remote: true

导航条的div为 count

我用来增加数字的功能:

$('#count').html(function(i, val) { return val*1+1 });

但如果我重新加载页面,那个值就会消失。我是如何才能让这个价值留在那里直到某些行动,比如' checkout'?

或许还有更好的方法吗?

2 个答案:

答案 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%>")