Passengerで実行中のRails 3.0.3を使用すると、すべてのリクエストに対して最後のフラッシュセットが保持されるという問題が発生しています。フラッシュメッセージが消去されない
def require_user
unless current_user
store_location
flash[:notice] = "You must be logged in to access this page"
redirect_to login_url
return false
end
end
しかし、後続の要求に応じて、ユーザーが正常に我々はまだフラッシュメッセージは永続取得中にログインした後に、それは、ユーザがフィルタの前にログインする必要がある場合たとえば、私たちは、フラッシュメッセージを設定していますセッション全体で決してクリアされません。
この例では、これは私たちがこのメッセージを設定している唯一の場所であり、ユーザーがログインしていないときにのみ設定されていることを保証しています。その後のすべての要求に対して「Test」フラッシュメッセージが残ります。
これは、開発環境または本番環境でアプリを実行する場合に発生します。
私が質問したように、この方法だけではありません。これは単なる例です。私がその方法からすべてを取り除き、フラッシュ[:notice] = 'Test'に入れると、私は 'Test'を得ます。それを削除してメソッドに何もないので、 'Test'通知が永遠にハングアップします。 – DEfusion