仅显示错误消息的属性一次

时间:2017-03-10 09:15:03

标签: ruby-on-rails custom-errors

在rails中,当属性有多个错误时,错误消息将显示如下:

- Image size cant greater 1MB
- Image should be 1024x768 max

但我想将其修改为以下格式:

Image:
 -Cant greater 1MB
 -Should be 1024x768 max
when upload.

有谁知道怎么做,请帮助我。谢谢你们。

2 个答案:

答案 0 :(得分:0)

您需要更改用于打印错误的html

Image:
 - Cant greater 1MB
 - Should be 1024x768 max

这将为您提供输出:

<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>

    <script type="text/javascript">
        google.charts.load('current', { 'packages': ['corechart', 'gauge'] });

答案 1 :(得分:0)

据推测,您目前正在使用类似的内容来呈现错误消息:

# erb
<% model.errors.full_messages.each |m| do %>
  <li><%= m %></li>
<% end %>

如果您选择使用它,Rails会在errors中为您提供验证错误的详细分类。例如:

model.errors[:image]
# => [ "can't be greater than 1MB", "should be 1024x768 max" ]

只会为image提供错误。

考虑到这一点,你可以尝试这样的事情:

# erb
<% model.errors.each do |attr, messages| %>
  <li>
    <%= attr %>:
    <ul>
      <% messages.each do |m| %>
        <li><%= m %></li>
      <% end %>
    </ul>
  </li>
<% end %>