flash.nowとは
flash.now
は、Railsのコントローラーでフラッシュメッセージを表示する際に使用されるオブジェクトです。通常のflash
とは異なり、flash.now
で設定されたメッセージは次のリクエストでは保持されません。
通常のflash
メッセージは、リクエストの終了時にセッションに保存され、次のリクエストで表示されます。しかし、flash.now
メッセージは、現在のリクエストにのみ適用されます。つまり、レンダリングするビューに対して直接メッセージを表示したい場合に使用されます。
使用方法
例えば、次のように使用します:
# コントローラー内のアクション
def create
@user = User.new(user_params)
if @user.save
flash[:success] = "User created successfully!" # このメッセージは次のリクエストで表示される
redirect_to @user
else
flash.now[:error] = "Error creating user." # このメッセージは現在のリクエストで表示される
render 'new'
end
end
この例では、ユーザーが作成された場合はflash[:success]
メッセージが次のリクエストで表示され、作成に失敗した場合はflash.now[:error]
メッセージが現在のリクエストで表示されます。