フォーム入力時エラー情報を個別表示
確認ポイント
・エラーメッセージ表示部分をformのテンプレートに記載せず、専用のパーシャルが作られていること。 shared/_error_messages.html.erb
<% if object.errors.any? %> <div class="alert alert-danger"> <ul class="mb-0"> <% object.errors.full_messages.each do |msg| %> <li><%= msg %></li> <% end %> </ul> </div> <% end %>
・次にパーシャル 呼び出し app/views/boards/_form.html.erb
<%= form_with model: board, local: true do |f| %> <%= render 'shared/error_messages', object: f.object %> #重要 <div class="form-group"> <%= f.label :title %>
<%= render 'shared/error_messages', object: f.object %> この部分がエラーメッッセージに該当する部分です。 第二引数のmodel: f.objectはパーシャルに対して変数を渡しています。 modelという変数名で、f.objectという値を渡しています。 こうすることでパーシャルの汎用性が増える。
参考文献