У меня есть поле даты в модели поддержанная форма в моем Приложении для направляющих:
<%= f.date_select :birthday,
{:start_year => Time.now.year,
:end_year => 1900,
:use_short_month => true,
:order => [:month, :day, :year],
:prompt => {:month => 'Month', :day => 'Day', :year => 'Year'}},
{:class => 'year',
:id => 'user_birthday'}
%>
Это проверяется в использовании типового кодекса:
validates_presence_of :birthday, :message => 'is a required field'
К сожалению, если пользователь вводит частичное значение такой как только год, форма все еще отправляет без ошибки. Вместо этого броское значение даты записано в дб. Как я заставляю все три поля быть обязательными?
Я хотел бы записать пользовательскую проверку для этого, но я не знаю, как правильно получить доступ к indvidual частям элемента дня рождения. Как я могу сделать это?
Спасибо! Moe
Вы можете переопределить метод validate_on_create
, например:
class MyModel < ActiveRecord::Base
def validate_on_create
Date.parse(birthday)
rescue
errors.add_to_base("Wrong date format")
end
end