【问题标题】:Why is Rails saving the session even if there have not been any changes?为什么即使没有任何更改,Rails 也会保存会话?
【发布时间】:2011-06-14 08:59:29
【问题描述】:

我的 Rails (3) 应用程序使用 AJAX 在仪表板上加载几个 portlet。用户必须经过身份验证才能查看仪表板。所以保存在session中的user_id很重要。我正在使用默认的 ActiveRecord 会话存储。

GET '/dashboard' 完成后,会触发几个 XHR GET 请求(并由负载平衡的并行 b/c 处理)。这些请求不会以任何方式修改会话,它们只是从会话中检索 user_id。

不过,这会为每个 XHR 请求生成一个UPDATE 'sessions' ... where 'session.id' = ...。在第一个 XHR 请求中导致行锁,因此后续 XHR 请求会挂起,直到锁被释放。

是否有任何理由 Rails 应该将会话再次保存到数据库中,即使没有任何更改?

【问题讨论】:

    标签: ruby-on-rails session activerecord


    【解决方案1】:

    Rails 更新了updated_at 字段,因此您可以看到会话上次使用的时间。

    例如,您可能会丢弃一段时间未使用的会话。发出请求意味着您正在使用会话。

    【讨论】:

      猜你喜欢
      • 2021-06-20
      • 1970-01-01
      • 1970-01-01
      • 2015-10-18
      • 2016-12-10
      • 2014-07-10
      • 2023-03-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多