Ruby on rails Rails 2.3:服务器重新启动后,会话不可用于第一个请求

Ruby on rails Rails 2.3:服务器重新启动后,会话不可用于第一个请求,ruby-on-rails,session,Ruby On Rails,Session,我目前正在将rails应用程序从2.1.0升级到2.3.14。 大多数事情现在运行良好,但用户会话有一个奇怪的问题: 当用户登录后,它将保存在会话中,即使在重新启动浏览器后也可以使用-这是应该的 但是:当我重新启动本地服务器并加载需要身份验证的页面时,会发生以下情况: Rails在数据库中创建一个新的会话行,其会话id与以前完全相同 在应用程序内部,“旧”会话不可用,旧会话数据不可用 如果我只是在之后重新加载页面(F5),那么包含旧数据的正确会话将被很好地加载 该应用程序使用ActionCont

我目前正在将rails应用程序从2.1.0升级到2.3.14。 大多数事情现在运行良好,但用户会话有一个奇怪的问题:

当用户登录后,它将保存在会话中,即使在重新启动浏览器后也可以使用-这是应该的

但是:当我重新启动本地服务器并加载需要身份验证的页面时,会发生以下情况:

  • Rails在数据库中创建一个新的会话行,其会话id与以前完全相同
  • 在应用程序内部,“旧”会话不可用,旧会话数据不可用
  • 如果我只是在之后重新加载页面(F5),那么包含旧数据的正确会话将被很好地加载
  • 该应用程序使用
    ActionController::Base.session\u store=:active\u record\u store
    和多个数据库(每个子域一个,这不是我的决定)。选择正确的数据库,就像之前一样\u filter和rails在这些数据库中保存会话

    我的猜测是,在服务器重新启动后,某些内容尚未正确设置,会话将在错误的数据库中搜索,并保留在第一个请求中(但在通过
    ActiveRecord::Base.build\u connection
    设置后,会话将保存在正确的数据库中)

    如果我的猜测是正确的,那么在建立连接后加载正确的会话应该可以解决这个问题。 有没有办法从数据库中完全重新加载会话,或者告诉Rails对所有会话使用自定义数据库

    提前谢谢