avosalmonのブログ

プログラミングやWebデザイン、DTMについて調べたことをメモってます。プログラマー兼ベーシストです。

【Rails】flashとflash.nowの違い

flashflash.nowではflashメッセージの有効期間が異なります。

flash
次のHTTPリクエストまでメッセージが有効。
次のリクエストが終了した時点でメッセージは消える。
redirect_toした先の画面でメッセージを表示したい時に使用する。
flash.now
現在のHTTPリクエストでのみメッセージが有効。
次のリクエストが終了した時点でメッセージは消える。
renderで表示する画面にメッセージを表示したい時に使用する。


renderで画面表示している(新しいHTTPリクエストは送信されない)にも関わらずflashを使用すると、1つ先の画面でもflashメッセージが表示されてしまう。
renderの場合はflash.nowを使用する。


参考記事
[Rails] flash.now[:notice]とflash[:notice]の違い - 拝啓、シーシュポス