我正在使用Rails表单,我也在使用Bootstrap选项卡。我有4个用户填写的标签,在第4个标签上是提交按钮。我在表单中有多个required: true
字段,当我点击提交按钮,将这些字段留空时,会出现弹出式提示“请填写此字段”。
问题:如何只显示包含所有错误消息的框,而不是每次出现一个错误消息?
我已经阅读了很多帖子,并尝试了大多数建议(除了包含JS的那些,因为我希望有一个强大的解决方案,不包括JS)。我把下面的一些代码放在我尝试的提交按钮下面,但是它没有显示任何内容,因为我认为它会覆盖它的单个框错误消息。
感谢任何帮助。
_form:
<%= form_for(@property, html: { multipart: true }) do |p| %>
...
<%= p.file_field :picture, :multiple => true, name: "property_attachments[picture][]", size: 2 %>
<%= p.submit "Submit", class: 'btn btn-primary' %>
<% if @property.errors.any? %>
<div id="error_explanation">
<div class="alert alert-danger">
The form contains <%= pluralize(@property.errors.count, "error") %>.
</div>
<ul>
<% @property.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>
<% end %>
答案 0 :(得分:1)
想出来并学习很多关于Rails Forms的知识。我正在使用required: true
用于许多字段,这会逐个为每个错误创建单独的弹出窗口。我删除了所有required: true
字段,然后在模型中添加了验证(例如validates: :price, presence: true
),然后我在上面的问题中使用的错误消息显示了任何缺少的字段。