バリデーションのエラーメッセージの個別表示
自分用です!!
バリデーションでのエラーメッセージをviewで表示していきます。
例えば、userを登録するときに、passwordとnameにpresence: trueのバリデーションをかけた、状態でパスワードとnameを空欄で登録すると、バリデーションに引っかかります。
railsのオブジェクトは、デフォルトでエラーオブジェクトを保持しているので、画像のようにエラーメッセージを取得できます。
ここでエラーメッセージが日本語化されているのは、i18nの働きによるものです。
さらに、full_messagesというメソッドを使用することで、エラーメッセージだけを取り出すことができます。
エラーメッセージは、色々な入力フォームで使いたいので、パーシャルを使います。
<% if object.errors.any? %>
<% object.errors.full_messages.each do |message| %>
<div class="alert alert-danger"><%= message %></div>
<% end %>
<% end %>
個別で表示したいので、each文を使用。
objectを指定して、そのobjectのエラーメッセージを表示されるようにします。
<%= 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のエラー文を表示してくれます。
Author And Source
この問題について(バリデーションのエラーメッセージの個別表示), 我々は、より多くの情報をここで見つけました https://qiita.com/kidokoro-syusei/items/2a2ad0cccc9b470e2bd3著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .