2009-12-16 2 views
16

Я использую атрибут authlogic для проверки пользователей на одном из моих сайтов. Все идет хорошо, но мне интересно, можно ли изменить сообщение об ошибке, которое возвращается, когда пользователь вводит неверный адрес электронной почты.Использование пользовательских сообщений об ошибках authlogic

Спасибо!

ответ

14

Вы можете переопределить параметры проверки подлинности электронной почты с помощью validates_format_of_email_field_options. Однако, если вы хотите изменить сообщение, вы можете объединить опции с merge_validates_format_of_email_field_options, чтобы только переопределенные параметры были переопределены. Вы задаете параметры в контроллере пользователя следующим образом:

class User < ActiveRecord::Base 
    acts_as_authentic do |c| 
     c.merge_validates_format_of_email_field_options :message => 'My message' 
    end 
end 

Вы также можете изменить настройки длины и единственности валидаций. Также есть много других настроек, посмотрите на documentation, в разделах :: Config каждого модуля вы можете найти настройки и их значения по умолчанию и как их переопределить.

В качестве альтернативы вы можете использовать локализацию и установить error_messages.email_invalid (это то, что ищет плагин, прежде чем устанавливать его по умолчанию на английском языке, также полезно, если вы строите международную заявку).

16

authlogic имеет специальные настройки для этой цели:

class UserSession < Authlogic::Session::Base 
    generalize_credentials_error_messages true 
end 

Сообщение об ошибке будет таким же: «комбинация E-mail/пароль неверен», является ли плохой пароль или адрес электронной почты. Вы можете изменить текст сообщения с указанием строки вместо true:

generalize_credentials_error_messages "Try again" 
+0

Благодарим вас за добавление. В некоторых местах не упоминается, как обрабатывать учетные ошибки при входе в систему. – jpcamara

4

Переопределить сообщения об ошибках Authlogic путем изменения в файле en.yml
Это работает для меня.

en: 
    authlogic: 
     error_messages: 
     login_blank: "Please enter the email address." 
     login_not_found: "This email address is already in the system. Please choose a different email address." 
     login_invalid: "Please enter a valid email address."