Я использую authlogic gem для проверки пользователей на одном из моих сайтов. Все идет хорошо, но мне интересно, можно ли изменить сообщение об ошибке, которое возвращается, когда пользователь вводит неверный адрес электронной почты.
Спасибо!
Я использую authlogic gem для проверки пользователей на одном из моих сайтов. Все идет хорошо, но мне интересно, можно ли изменить сообщение об ошибке, которое возвращается, когда пользователь вводит неверный адрес электронной почты.
Спасибо!
Вы можете переопределить параметры проверки электронной почты с помощью 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
Вы также можете изменить настройки для проверки длины и уникальности. Также есть много других настроек, посмотрите документацию, в разделах:: Config каждого модуля вы можете найти настройки и их значения по умолчанию и способы их переопределения.
В качестве альтернативы вы можете использовать локализацию и установить error_messages.email_invalid
(то, что ищет плагин, прежде чем устанавливать его на английское предложение по умолчанию, также полезно, если вы строите международную заявку).
authlogic имеет специальную настройку для этой цели:
class UserSession < Authlogic::Session::Base
generalize_credentials_error_messages true
end
Сообщение об ошибке будет одинаковым: "Неверная комбинация электронной почты/пароля", является ли пароль или адрес электронной почты плохим. Вы можете изменить текст сообщения с указанием строки вместо true
:
generalize_credentials_error_messages "Try again"
Переопределить сообщения об ошибках 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."