タイトルの通りです。
使用環境:
ruby:2.5.1
rails:5.2.2
検証
こんなコードを書きました。
blogs_controller.rb
def create
@blog = Blog.new(blog_params)
if @blog.save
redirect_to blogs_path
else
flash[:notice] = '投稿に失敗しました'
render :new
end
end
ブログを投稿し、バリデーションにひっかかると投稿に失敗しましたというメッセージを出します。
わざとバリデーションエラーを発火させる。
予定通り、flashメッセージが表示される。

ここで、画面にあるBackをクリックしてみる。

フラッシュメッセージが出たままだ!
続いて、コードを以下のように変更します。
blogs_controller.rb
def create
@blog = Blog.new(blog_params)
if @blog.save
redirect_to blogs_path
else
flash.now[:notice] = '投稿に失敗しました'
render :new
end
end
同じくわざとバリデーションエラーを発火させ、Backを押下。
するとflashメッセージが消えた!

しくみ
flash[:notice]にすると、次のアクションまで表示させる。
flash.now[:notice]にすると、次のアクションに移行した時点で消える。

renderは指定したviewsを呼び出すだけなので、アクションではないから気をつけるべし!
redirect_toは次のアクションになるので、flash.nowだと表示すらしない。

