Ryota400’s blog

エンジニアを目指して書いてます。

フォーム入力時エラー情報を個別表示

確認ポイント

・エラーメッセージ表示部分を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という値を渡しています。 こうすることでパーシャルの汎用性が増える。

参考文献

qiita.com

qiita.com

qiita.com