【发布时间】: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