SORA.GetOutput()

備忘録と捌け口とシェアと何か。

Bootstrapに対応したflashメッセージを出力する

失敗するパターン

flash[:success]等を使わずに、redirect_toから直接flashメッセージを出力すると失敗します。

redirect_to @hogemodel, success: 'Hoge Model was successfully created.'

解決策①

王道ですが、flashを使ってあげればOKです。

flash[:success] = 'Hoge Model was successfully created.'
redirect_to @hogemodel

解決策②

上記解決法もアリですが、やはりredirect_toでスマートに書きたい→Qiitaにまさに求めている答えがありました。

qiita.com

redirect_toからのflashメッセージは、デフォルトでは:noticeと:alertしか設定できないようになっているようです。application_controller.rbに以下を追加すれば使える様になります!

class ApplicationController < ActionController::Base
  add_flash_types :success, :info, :warning, :danger #これ!!!
end

もちろん、使用したいコントローラを制限したいときはapplication_controller.rbではなく対象となるコントローラに上記記載すれば大丈夫です。