Ruby On RailsでControllerからViewへのリダイレクトの際にメッセージ等レスポンスを返す方法
登録フォームなどをRailsで書いていると、登録成功、失敗それぞれのときにView側にメッセージを返したくなる時がある。 ajaxなどを使ってもできるが、flashを利用するとRailsのみで実現できる。
- controller側の例
def create # 何らかの処理 if 成功した場合 flash[:notice] = "成功メッセージ" redirect_to 成功時のリダイレクト先 else flash[:alert] = "失敗メッセージ or エラーメッセージ" redirect_to 失敗時のリダイレクト先 end end
- view側の例(slim)
- if flash[:notice] .notification.is-success = flash[:notice] - if flash[:alert] .notification.is-danger = flash[:alert]
flashをそのまま受け取って、if文で分岐し、メッセージを表示させる。