2010-11-06 2 views
1

Недавно я добавил дату рождения на мою страницу регистрации разработки и использую 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

ответ

2

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.

+0

отлично, только то, что мне нужно. Благодаря! – Jason

Смежные вопросы