エラーメッセージの表示

フォームに値が入っていない時にエラーメッセージを表示させたい。

エラーメッセージは使い回したいのでパーシャル化しておきます。

<% if object.errors.any? %>   # 特定の変数ではなくobjectとすることで汎用化
  <div class='alert alert-danger'>
    <ul class='mb-0'>
      <% object.errors.full_messages.each do |message| %>
        <li><%= message %></li>
      <% end %>
    </ul>
  </div>
 <% end %>

呼び出したいビューファイルで

<%= form_with model: board, local: true do |f| %>
  <%= render 'shared/error_messages', object: f.object %>   # object: f.objectと指定
  <%= f.label :title %>
  <%= f.text_field :title, class: 'form-control' %>
...
<% end %>

form_withの中で呼び出す。

これでバリデーションに引っ掛かった項目だけエラーメッセージを表示できる。