Ruby on rails Rails 2.3.14将忽略for sessions的设置expire_

Ruby on rails Rails 2.3.14将忽略for sessions的设置expire_,ruby-on-rails,session,cookies,nginx,passenger,Ruby On Rails,Session,Cookies,Nginx,Passenger,我的environment.rb中有下一个配置: config.action_controller.session_store = :cookie_store config.action_controller.session = { :expire_after => 14.days, :domain => DOMAIN, :session_key => '_session', :secret => 'some_string' }

我的environment.rb中有下一个配置:

config.action_controller.session_store = :cookie_store
config.action_controller.session = {
:expire_after   => 14.days,
:domain         => DOMAIN,
:session_key    => '_session',
:secret         => 'some_string'
}
将会话存储设置为活动记录存储内存缓存存储没有帮助。 此外,我还尝试从controller设置cookie(使用expire的所有已建立选项):

在这两种情况下,关闭浏览器窗口后,所有会话和cookie都将被删除-它们仅用于浏览器会话。 我已经尝试了几乎所有在互联网上发现的变体-没有运气(

我的配置是:Ubuntu 10.04 LTS、rails 2.3.14、ruby Enterprise Edition 1.8.7、Phusion Passenger版本3.0.11和由Phusion Passenger编译的Nginx

我有一个选项,它的Nginx不允许设置一些标题,但也没有找到任何解决方案

谢谢你的帮助

UPD。 我已尝试将会话的所有配置放在config/initializers/session_store.rb中-没有任何更改。 我觉得这不是rails的问题。可能是phusion+nginx错误吗?
我甚至不知道如何检查问题出在哪里。

将其放在config/initializers/session_store.rb中

ActionController::Base.session = {
  :expire_after   => 14.days,
  :domain         => DOMAIN,
  :session_key    => '_session',
  :secret         => 'some_string'
}
试试这个:

config.action_controller.session_store = :cookie_store
ActionController::Base.session_options[:expire_after] = 14.days
轨道3

Rails.application.config.session_store :cookie_store, :key => "whatever", :expire_after => 14.days

我也尝试过这种变体。运气不好-关闭浏览器窗口后过期Hi@sealer我在rails3代码中使用了它,但在会话到期后,它将为用户id提供零错误,他们是否有任何方法将用户重定向到刷新上的登录页?对我来说,这在rails 2.3.18中是有效的。这可能很明显,但在更改一些内容后,您必须重新启动服务器初始值设定项中的内容。在chrome中,您也可以轻松检查cookie的
过期时间/max age
(在“资源”选项卡中)。我已经检查了浏览器中的cookies部分,当我单击cookie“\u session”时,它显示它将在浏览器会话结束后过期。这是真的-我正在关闭浏览器并再次打开,没有cookie)
Rails.application.config.session_store :cookie_store, :key => "whatever", :expire_after => 14.days