2011-06-18 5 views
0

私のコントローラは、セッション値をnilに設定しようとします。コントローラ内では動作しますが、ブラウザをリロードすると(終了せずに)、セッション値が戻ってきますか?セッション['value'] = nilはRails 3では空ではないようですか?

どのようにクリアして空にすることができますか?私はそれを設定するにもかかわらず、ブラウザがまだそのセッションを保存することは可能ですか?= nil?

+0

あなたは 'session ['value]' = nil'または' session = nil'を呼び出していますか? –

+0

最初 - 私は他のセッション変数を殺したくありません.... – Angela

+0

あなたが提供したコードは正しいはずです。あなたはそれが呼ばれていると確信していますか? –

答えて

1

変数をnilに設定すると、セッションが維持されます。 セッション全体を取り除くために、あなたのコントローラに

reset_session 

を呼び出すようにしてください。

それにもかかわらず、でもnilに値を設定した後、それはあなたの次の要求で出てくるべきではありません。それを元に戻さないようにしてください。 before_filterで指定します。

+0

私はセッションを維持したい、ただ一つの値です。招待状をクリックして来ているかどうかを確認する – Angela

+0

その場合、コードは間違いありません。何か間違いがあります。 などの追加情報を提供してください - どのセッションストレージを使用していますか(CookieまたはActiveRecord) - コントローラコードの設定値をゼロにする - 次の要求で値を確認するコントローラコード – emrass

0

セッションにCookieストアを使用している場合、変更されたセッションがブラウザに表示されない可能性があります。この場合、ブラウザは依然としてクッキー内に古い値を持っています。ページがリロードされると、ブラウザはCookieをレールに送信し、古い値を復元します。

あなたのコントローラーの操作を見ることなく、さらに言い表すのは難しいです。

関連する問題