私は次のコードを使用して、Rails アプリケーションでフラッシュ通知を使用しています。
flash[:notice] = "Sorry, we weren't able to log you in with those details."
render :action => :new
フラッシュ メッセージは、「新規」アクションで期待どおりに表示されますが、その後、ユーザーがアクセスする次のページ (それが何であれ) にも表示されます。 表示されるのは 1 回だけであるはずですが、何らかの理由でそのまま表示されてしまいます。
ベストアンサー1
この問題を解決するには 2 つの方法があります。
1つは
flash.now[:notice]
現在のリクエストの終了時にフラッシュを破棄する必要があり、リダイレクト後に使用されることを意図していない場合。
2つ目は電話することです
flash.discard(:notice)
リクエストの最後に。
標準のフラッシュ メッセージは、「次の」リクエストのために保持されることを目的としています。たとえば、作成または編集リクエストの処理中にフラッシュを生成し、ユーザーを表示画面にリダイレクトします。ブラウザーが表示画面への次のリクエストを行うと、フラッシュが表示されます。
実際にショー画面自体にフラッシュを生成する場合は、 を使用しますflash.now
。