エラーメッセージの表示
フォームに値が入っていない時にエラーメッセージを表示させたい。
エラーメッセージは使い回したいのでパーシャル化しておきます。
<% 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の中で呼び出す。
これでバリデーションに引っ掛かった項目だけエラーメッセージを表示できる。