Придумать, настроить сообщения об ошибках? - PullRequest
1 голос
/ 22 февраля 2012

Я использую rails 3 с устройством devise.

У меня есть таблица User с полями: электронная почта, пароль, имя_файла, lname

В настоящее время я выводю ошибки в моем представлении следующим образом:

<% if @user.errors.any? %>
    <div id="error_explanation" class="error">
    <h2>Hold on!</h2>
        <ul>
            <% @user.errors.full_messages.each do |msg| %>
                <li><%= msg %></li>
            <% end %>
        </ul>
    </div>
<% end %>

Проблема заключается в следующем:

Email The User's Email cannot be blank
Password The User's Password cannot be blank
Fname The User's Fname is too short (minimum 1 characters)
Lname The User's Lname is too short (minimum 1 characters)

Как мне сделать так, чтобы имя поля не отображалось первым при каждой ошибке?

В моей модели пользователя у меня есть:

проверяет: fname,: length => {: минимум => 1,: максимум => 100} проверяет: lname,: length => {: минимум => 1,: максимум => 100}

Я могу настроить эти поля с помощью атрибута сообщения.А как насчет электронной почты и пароля, которые, кажется, встроены в устройство?Как настроить эти сообщения об ошибках?

Спасибо

Ответы [ 2 ]

2 голосов
/ 22 февраля 2012

http://ar.rubyonrails.org/classes/ActiveRecord/Validations/ClassMethods.html

validates_presence_of(*attr_names)

 Configuration options:
  message - A custom error message (default is: "can‘t be blank").

Что касается настройки встроенных имен, этот поток может помочь

Rails3: Разработать интернационализацию не локализует "Подтверждение пароля" и другие

(для продолжения)

activerecord:
   attributes:
       user:
        email: "your_way_of_email"
          password: "your_way_of_password"
          password_confirmation: "your_way_of_password_confirmation"

Рельсы тогда будут гуманизировать их

0 голосов
/ 22 февраля 2012

Используйте each_key для извлечения полей и навигации по ошибкам в каждом поле.

<% if @user.errors.any? %>
    <div id="error_explanation" class="error">
    <h2>Hold on!</h2>
        <ul>
            <% @user.errors.each_key do |attr| %>
                <% @user.errors[attr].each do |msg| %>
                    <% next if msg.nil? %>

                    <li><%= msg %></li>
                <% end %>
            <% end %>
        </ul>
    </div>
<% end %>

Просмотр источника full_messages: http://ar.rubyonrails.org/classes/ActiveRecord/Errors.html#M000311

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...