自分用です!!
バリデーションでのエラーメッセージをviewで表示していきます。
例えば、userを登録するときに、passwordとnameにpresence: trueのバリデーションをかけた、状態でパスワードとnameを空欄で登録すると、バリデーションに引っかかります。
railsのオブジェクトは、デフォルトでエラーオブジェクトを保持しているので、画像のようにエラーメッセージを取得できます。
ここでエラーメッセージが日本語化されているのは、i18nの働きによるものです。
さらに、full_messagesというメソッドを使用することで、エラーメッセージだけを取り出すことができます。
エラーメッセージは、色々な入力フォームで使いたいので、パーシャルを使います。
_error_messages.html.erb
<% if object.errors.any? %>
<% object.errors.full_messages.each do |message| %>
<div class="alert alert-danger"><%= message %></div>
<% end %>
<% end %>
個別で表示したいので、each文を使用。
objectを指定して、そのobjectのエラーメッセージを表示されるようにします。
users/new.html.erb
<%= form_with model: @user, local: true do |f| %>
<%= render 'shared/error_messages', object: f.object %>
<div class="form-group">
<%= f.label :first_name %>
<%= f.text_field :first_name %>
<% end %>
このように、パーシャルを呼び出します。
object: f.objectでは、f.objectに@userが入っており、パーシャル側では、そのobjectのエラー文を表示してくれます。