显示Rails必填字段一次表示错误

时间:2016-03-07 20:54:44

标签: forms ruby-on-rails-4

我正在使用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 %>

1 个答案:

答案 0 :(得分:1)

想出来并学习很多关于Rails Forms的知识。我正在使用required: true用于许多字段,这会逐个为每个错误创建单独的弹出窗口。我删除了所有required: true字段,然后在模型中添加了验证(例如validates: :price, presence: true),然后我在上面的问题中使用的错误消息显示了任何缺少的字段。