私は助けが必要な奇妙な問題があります。デフォルトの検証方法からエラーメッセージをカスタマイズするrails
だから私は、少なくとも1つを選択する必要があるように私のフォームのチェックボックスを検証しようとしている:
...
<div class="form-group">
<%= f.collection_check_boxes(:topping_ids, Topping.all, :id, :name, include_hidden: false) do |b| %>
<ul>
<li><%= b.check_box %> - <%= b.label %></li>
</ul>
</div>
...
マイモデル:
class Pizza < ApplicationRecord
has_many :pizza_toppings, dependent: :destroy
has_many :toppings, through: :pizza_toppings
validates_presence_of :name
validates_length_of :topping_ids, minimum: 1, message: "You must select at least 1 topping"
end
マイエラー部分:
<% if object.errors.any? %>
<div id="error_explanation">
<div class="errors-alert text-center">
The form contains <%= pluralize(object.errors.count, "error") %>.
</div>
<ul>
<% object.errors.full_messages.each do |msg| %>
<li class="errors-alert-item text-center"><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>
エラーは次のようになります。
「Topping ids」をどのように変更したり取り除いたりするのですか?私はメッセージを変更する方法を学びましたが、私は "Toppings ids"のために私が何を変更するのかは分かりませんが、明らかにユーザーには役に立たないものです。私は他のフォームの検証を使用していたので、私はそれらのエラーを見ることができるようにしたいので、これは私が変更する必要がある唯一のものです。
と、このエラーメッセージが表示されます特定の属性に対して –