Rails电子商务网站会话

时间:2016-07-10 14:06:33

标签: ruby-on-rails session heroku

我已经阅读了使用Rails 4的敏捷开发一书。我使用heroku部署了应用程序。我只为管理员提供登录功能,因此任何人都可以创建购物车并在不创建帐户的情况下提交订单。我注意到,当我在部署的网站上的笔记本电脑上创建一个购物车时,当我进入我的桌面时,购物车是相同的。因此,在所有会话中共享一个说id = 20的购物车。这显然是个问题。我怀疑它与我的current_cart模块有关,但不确定。

module CurrentCart 
  extend ActiveSupport::Concern
    private
      def set_cart 
        @cart = Cart.find(session[:cart_id]) 
      rescue ActiveRecord::RecordNotFound 
        @cart = Cart.create 
        session[:cart_id] = @cart.id    
      end
end 

然后我在商店,订单,订单项和购物车控制器上使用包含CurrentCart和before_action:set_cart。我希望每个会话都与每台计算机相关联,并在关闭浏览器时结束,我知道这可能因浏览器设置而异。我相信这也可能发生,因为我将这些信息存储在数据库中,因此cart_id会一直存在,直到删除购物车为止。任何帮助,将不胜感激。

1 个答案:

答案 0 :(得分:0)

这是由于生产中的缓存。我更改了config.action_controller.perform_caching = false 它现在有效。