Использование пользовательских сообщений об ошибках - PullRequest
16 голосов
/ 17 декабря 2009

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

Спасибо!

Ответы [ 3 ]

16 голосов
/ 19 января 2010

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

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

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

generalize_credentials_error_messages "Try again"
14 голосов
/ 17 декабря 2009

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

4 голосов
/ 30 октября 2012

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