Я использую time_select с подсказкой («Choose hours» ...) и хотел бы убедиться, что пользователь действительно вводит действительное время. Но если форма отправляется без какого-либо времени (так что с выбранными пустыми вариантами запроса), я не получаю никаких ошибок из моей проверки.Rails 3: Как предотвратить мои проверки для передачи «нулевого времени» из выпадающих списков time_select?
Мои Validation:
validates :start_time, :presence => true, :allow_nil => false, :allow_blank => false
Причина заключается в том, что рельсы превращает вход с полей time_select автоматически в эту дату, когда они пусты:
0001-01-01 00:00:00
Есть хороший способ предотвратить это от происходящего?
Спасибо!
Это будет обходить проверку a, но что, если вы сделали '<% = f.time_select: field,: value => Time.now%>' [с другими параметрами, которые вы хотите, конечно]? По крайней мере, это займет время. Или вы можете установить временную переменную в своем контроллере, например. '@time_entered = [некоторое время]', а затем используйте '@ time_entered' вместо' Time.now'. – ScottJShea
Я действительно делал это раньше. Но проблема здесь заключается в удобстве использования. Если я устанавливаю время по умолчанию, например. 6 вечера люди забудут выбрать правильное время (потому что валидация никогда не сработает). Вот почему я ищу другое решение. –
Да ... это был хакерский способ сделать это, чтобы быть уверенным. Я только что написал ответ, который, надеюсь, сработает для вас. – ScottJShea