Rails 3 - Показать все сообщения об ошибках для данного метода? - PullRequest
0 голосов
/ 28 февраля 2011

Я хотел бы знать, есть ли способ (плагин?) Для отображения всех сообщений об ошибках для данного объекта в рельсах 3. Например, здесь мои проверки:

validates_presence_of :email, :message => "Your Email can't be blank"
validates_format_of :email, :with => /^[-a-z0-9_+\.]+\@([-a-z0-9]+\.)+[a-z0-9]{2,4}$/i

, который будетотображается в виде так:

Your Email can't be blank
Email is invalid

Если я использую error_message_on (@user,: email), я получу первое сообщение об ошибке, поэтому мой старт должен создать цикл и извлечь связанный метод (пример @ user.email) Это правильный путь?

РЕДАКТИРОВАТЬ

Это почти достигает этого:

<ul>
  <%= @user.errors.on(:email).each do |msg| %>
    <li><%= msg %></li>
  <% end %>
</ul>

Но он также возвращает массив, Как я могусправиться с этим?

Your Email can't be blank
is invalid
["Your Email can't be blank", "is invalid"]

Спасибо!

1 Ответ

1 голос
/ 28 февраля 2011
<ul>
  <% @user.errors.on(:email).each do |msg| %>
    <li><%= msg %></li>
  <% end %>
</ul>

и в качестве помощника:

def display_all_error_messages(object, method)
  list_items = object.errors[method].map { |msg| content_tag(:li, msg) }
  content_tag(:ul, list_items.join.html_safe)
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...