Разработка пользовательских сообщений при сбое проверки - PullRequest
6 голосов
/ 17 февраля 2012

Я использую devise в качестве механизма аутентификации в моем приложении. Есть ли способ использовать пользовательские сообщения при сбое проверки устройства. Devise дает мне следующее сообщение, когда пароль пуст: Password can't be blank, но мне нужно другое сообщение. Как я могу это сделать?

Ответы [ 4 ]

23 голосов
/ 15 сентября 2012

ActiveRecord en.yml - ответ, который я бы предложил, если вы хотите изменить сообщение проверки для Devise

Вот как должен выглядеть en.yml

en:
  activerecord:
    errors:
      models:
        user:
          attributes:
            email:
              blank: "Please Specify an Email id"
              taken: "Please use a different Email id"
              invalid: "Please Specify a valid Email id"
            password:
              blank: "Please Specify a Password"
              confirmation: "Password does not match"
            password_confirmation:
              blank: "Please Specify a Password Confirmation"
            first_name:
              blank: "Please Specify First Name"
            last_name:
              blank: "Please Specify Last Name"
        pdf:
          attributes:
            name:
              blank: "Please Specify name to PDF"
              taken: "Please use different name for PDF"
            attachment:
              blank: "Please Upload a PDF Attachment"
        data_element:
          attributes:
            name:
              blank: "Please give Element a desired name"
              taken: "Already Created Element with given name"
            color:
              blank: "Please assign a color to Element"
        template:
          attributes:
            name:
              blank: "Please Specify a Name"
              taken: "Please use a different name"

Я советую вам определить этот способ, а не настраивать модуль проверки устройства

Потому что, если вы последуете вышеуказанному подходу, возможно, вы пропустите проверку места или двух

для примера I удалите вышеуказанный модуль проверки устройства, а затем подставьте свой собственный в Модель пользователя

тогда вся проверка будет работать, но вы пропустите проверку в Change Password

В результате вы можете войти в систему, хотя пароль никогда не указывался и не давался

Держите это в курсе тоже

Cheer

Привет

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

Пожалуйста, обратитесь к URL ниже.

http://railscasts.com/episodes/210-customizing-devise?view=asciicast

Если пользователь входит в систему, вы можете редактировать все сообщения об ошибках в devise.en.yml в config/locales.

Если вы регистрируетесь, Devise предоставляет свои собственные проверки без предварительной настройки. Если вы хотите настроить его, вы можете отредактировать модель User.

Найдите devise :validatable и удалите опцию :validatable. После чего вы сможете использовать обычные проверки рельсов. Обратите внимание, что это заставит вас делать все проверки самостоятельно.

validates_presence_of :password, :message=>"Your custom error message!"

Некоторые обычные проверки:

  validates_confirmation_of :password
  validates_presence_of :password, :on => :create
  validates_presence_of :email
  validates_uniqueness_of :email
0 голосов
/ 18 июня 2015

Вы можете настроить свои сообщения devise из config / locales / devise.en.yml, но если вы хотите перейти к сообщению проверки, то удалите: validatable from Model. Затем вы можете изменить сообщение проверки, как раньше. Например:

validates_uniqueness_of    :email,     :case_sensitive => false, :allow_blank => true, :if => :email_changed?
validates_format_of    :email,    :with  => Devise.email_regexp, :allow_blank => true, :if => :email_changed?

validates_presence_of    :password, :on=>:create
validates_confirmation_of    :password, :on=>:create
validates_length_of    :password, :within => Devise.password_length, :allow_blank => true
0 голосов
/ 17 февраля 2012

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

Вот похожий вопрос: Разработать атрибуты для i18n?

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