窓際BLOG

プログラミングの学習メモや書籍の感想等を公開していきます。

RubyonRails:deviseのエラーメッセージをカスタマイズする方法

deviseで発生するエラーメッセージのBootstapっぽくしたかったので、その方法をφ(..)メモメモ

事象

deviseでは、通常エラーメッセージをdevise内で定義されているdevise_error_messages!で表示させるため、class等を設定し、レイアウトを調整することは出来ない。

f:id:madogiwa0124:20170610103432p:plain

対処法

devise_error_messages!とは別にメソッドをHelperに定義し、エラーメッセージを返却すれば良い。

  # デバイスのエラーメッセージ出力メソッド
  def devise_error_messages
    return "" if resource.errors.empty?
    html = ""
    # エラーメッセージ用のHTMLを生成
    messages = resource.errors.full_messages.each do |msg|
      html += <<-EOF
        <div class="error_field alert alert-danger" role="alert">
          <p class="error_msg">#{msg}</p>
        </div>
      EOF
    end
    html.html_safe
  end

修正後 f:id:madogiwa0124:20170610103653p:plain

参考にしたページ

qiita.com