2016-03-07 82 views
0

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

想通了,学习了很多关于Rails的形式。我在很多领域都使用了required: true,并在每个错误上逐一创建了各自的弹出窗口。我删除了所有required: true字段,然后在模型中添加验证(例如,validates: :price, presence: true),然后在我的问题中使用上面的错误消息显示了任何缺失的字段。