【Rails】flashとflash.nowの違い
flashとflash.nowではflashメッセージの有効期間が異なります。
flash
次のHTTPリクエストまでメッセージが有効。 次のリクエストが終了した時点でメッセージは消える。 redirect_toした先の画面でメッセージを表示したい時に使用する。
flash.now
現在のHTTPリクエストでのみメッセージが有効。 次のリクエストが終了した時点でメッセージは消える。 renderで表示する画面にメッセージを表示したい時に使用する。
renderで画面表示している(新しいHTTPリクエストは送信されない)にも関わらずflashを使用すると、1つ先の画面でもflashメッセージが表示されてしまう。
renderの場合はflash.nowを使用する。
参考記事
[Rails] flash.now[:notice]とflash[:notice]の違い - 拝啓、シーシュポス