makoto's TECH

私の備忘録

【Rails】Deviseのエラーメッセージの個別表示

概要

f:id:mako_to_ex:20190228162801p:plain これを、、、

f:id:mako_to_ex:20190228162823p:plain こうします。

作業

app/views/devise/new.html.erb

<%= devise_error_messages! %>

これを削除します。

app/views/devise/new.html.erb

<div class="field">
  <%= f.label :email %>
  <%= f.email_field :email, autocomplete: "email" %>
  <% resource.errors.full_messages_for(:email).each do |message| %>
    <div class="red-text center">
      <%= message %>
    </div>
  <% end %>
</div>

このようにそれぞれの入力フォームを編集します。

番外編

このままだとエラーが発生した時にレイアウトが崩れてしまいます。。。

config/application.rb

config.action_view.field_error_proc = Proc.new do |html_tag, instance|
  %Q(#{html_tag}).html_safe
end

これを追加します。

参考

blog.naichilab.com

所感

個別に表示させようとする前は、エラーメッセージのレイアウトを変更しようとしてました。

その時には、以下の記事が参考になりました。

qiita.com