У меня есть форма с выбором даты.
У меня есть следующая форма:
<%= date_select :user, :birthday, {:start_year => Time.now.year, :end_year => 1910,:order => [:day,:month,:year], :prompt => { :day => 'day', :month => 'month', :year => 'year' }}, { :class => "default" } %>
Проверка в моей модели:
validates :birthday, :if => :should_validate_birthday?,
:presence => {:message => "Please enter your friend's birthdate"},
:date => { :after => Date.civil(1910,1,1), :before => Date.today, :message => "Please enter a valid date"}
Вотпример того, что пользователь отправляет в журнал:
"user"=>{"name"=>"rewrwe", "birthday(3i)"=>"1", "birthday(2i)"=>"", "birthday(1i)"=>"2008", "email"=>""}}
Обратите внимание, что значение месяца пустое.
В контроллере я создаю пользователя
create
@user = User.new(params[:user])
If @user.save
#go to the confirm page
end
end
Сообщения об ошибках не отображаются, хотя месяц отсутствует, потому что по какой-то причине, когда я пытаюсь сохранить модель, она преобразует пустой месяц в «январь» или 01.
Это очень расстраивает, так как я этого не делаюхотите, чтобы пользователи отправляли неверные данные случайно.
Как я могу помешать Rails сделать это и убедиться, что вся информация о дате отправлена?