Добавил дату в Devise и теперь получаю ошибки - PullRequest
1 голос
/ 06 ноября 2010

Я недавно добавил поле даты рождения на мою страницу регистрации устройства и использую validates_timeliness, чтобы проверить, что дата правильная. Однако, если дата оставлена ​​пустой, я получаю приведенную ниже ошибку и не уверен, как ее исправить.

* Date of birth translation missing: en, activerecord, errors, models, user, attributes, date_of_birth, invalid_date
* Date of birth translation missing: en, activerecord, errors, models, user, attributes, date_of_birth, invalid_date

контроллер

  #validates_timeliness gem is used for validates_date
  validates_date :date_of_birth, :before => lambda { 18.years.ago }, :before_message => "must be at least 18 years old"
  validates_date :date_of_birth, :after => lambda { 106.years.ago }, :before_message => "Seriously, dude. You ain't that old."
  validates_acceptance_of :terms_of_service, :accept => true
  validates_presence_of :gender_id

Форма в действии, если вам нужно это увидеть. http://hangwith.me/account/register

1 Ответ

2 голосов
/ 06 ноября 2010

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

Чтобы исправить это, вам нужно определить соответствующие строки в конфигурации i18n следующим образом:

en:
  activerecord:
    errors:
      models:
        user:
          attributes:
            date_of_birth:
              invalid_date: 'You must be over 18 to use HangWith.me (and not too old either)!'

Кроме того, если вы хотите, чтобы пользователь мог продолжить работу без ввода даты (это не совсем понятно из вашего вопроса), вы должны установить :allow_blank для проверки validates_timeliness.

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