我的环境中有下一个配置.rb:
config.action_controller.session_store = :cookie_store
config.action_controller.session = {
:expire_after => 14.days,
:domain => DOMAIN,
:session_key => '_session',
:secret => 'some_string'
}
将session_store设置为 active_record_store 或 mem_cache_store 没有帮助。 此外,我试过从控制器设置cookie(所有已建立的选项到期):
cookies[:test] = { :value => 'test' , :expires => 3600.to_i.from_now.utc }
在关闭浏览器窗口后,两种方式都会删除所有会话和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 - 没有任何改变。 我觉得这不是铁轨问题。可能是phusion + nginx错误? 我甚至不知道如何检查问题所在。
答案 0 :(得分:1)
将它放在config / initializers / session_store.rb
中ActionController::Base.session = {
:expire_after => 14.days,
:domain => DOMAIN,
:session_key => '_session',
:secret => 'some_string'
}
答案 1 :(得分:0)
试试这个:
config.action_controller.session_store = :cookie_store
ActionController::Base.session_options[:expire_after] = 14.days
对于Rails 3
Rails.application.config.session_store :cookie_store, :key => "whatever", :expire_after => 14.days