Rails のフラッシュメッセージは 2 ページ読み込み後も残ります 質問する

Rails のフラッシュメッセージは 2 ページ読み込み後も残ります 質問する

私は次のコードを使用して、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

Flashハッシュがどのように機能するかについては、Ruby on Rails APIドキュメントを確認してください。

おすすめ記事