2

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'
}

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であるというオプションがありますが、解決策も見つかりませんでした。

どんな助けでも大歓迎です!ありがとう

アップデート。セッションのすべての構成を config/initializers/session_store.rb に配置しようとしましたが、何も変更されていません。Railsの問題ではないと感じています。Phusion + nginxエラーでしょうか?問題がどこにあるかを確認する方法さえわかりません。

4

2 に答える 2

1

これを config/initializers/session_store.rb に入れます

ActionController::Base.session = {
  :expire_after   => 14.days,
  :domain         => DOMAIN,
  :session_key    => '_session',
  :secret         => 'some_string'
}
于 2012-05-31T16:18:38.683 に答える
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
于 2012-05-31T16:31:30.357 に答える