2013-10-02 3 views
0

Я ищу решение для проверки даты рождения пользователя, например, если пользователь пытается отправить только день и месяц, но он не выбирает год, дата будет недействительной, но рельсы не будут 't показать какое-либо исключение или ошибку, если год не установлен, например, но он пропускает дату, а дата не обновляется.Как проверить правильность даты при использовании date_select

Я нашел несколько старых ответов на эту тему, и мне это кажется не совсем понятным. (Обратите внимание, я использую date_select помощник на мой взгляд)

я уже поиск о проверке даты, но я ищу для эффективного решения, которое до даты

я буду благодарен за любые предложение. спасибо

+0

Что неправильно с 'date_select', встроенным в Rails? –

+0

никаких проблем с date_select !!! Зачем ? моя проблема в том, как проверить дату! – medBo

+0

Что вы подразумеваете под "validate date"? Какую проверку вы пытаетесь сделать? –

ответ

0

DateTime.Parse (..) выдаст ошибку, если дата не является действительным:

[1] pry(main)> DateTime.parse("Feb 31, 2013") 
ArgumentError: invalid date 
from (pry):1:in `parse' 
[2] pry(main)> e = begin; DateTime.parse("Feb 31, 2013"); rescue => e; e; end 
=> #<ArgumentError: invalid date> 

Так просто захватить ошибку, чтобы проверить на действительную дату:

def valid_date?(string) 
    begin 
    DateTime.parse(string) 
    return true 
    rescue => e 
    return false 
    end 
end 
+0

это решение на стороне клиента:/Представьте, что javascript отключен, мне нужна проверка сервера с помощью рельсов. – medBo

+0

Обновлен мой ответ. –

+0

Кажется, что рельсы принимают автомобиль в случае, когда это 31 февраля, и обновите его с 31 февраля по 2 марта ... все еще случай, когда пользователь выбирает только день и месяц (но не год) – medBo

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