Подтвердить что ты не робот

Использование пользовательских сообщений об ошибках

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

Спасибо!

4b9b3361

Ответ 1

Вы можете переопределить параметры проверки электронной почты с помощью 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 (то, что ищет плагин, прежде чем устанавливать его на английское предложение по умолчанию, также полезно, если вы строите международную заявку).

Ответ 2

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

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

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

generalize_credentials_error_messages "Try again"

Ответ 3

Переопределить сообщения об ошибках 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."