2010-09-10 5 views
0

У меня возникли проблемы с работой с Time.now. По какой-то причине, когда я сохраняю объект в БД, он сохраняет его для 2000 года. Я пытаюсь сделать сравнение с объектом, который я сохранил в БД, чтобы Time.now проверить, если он больше, но он всегда возвращает ложь из-за 2000 года. Кто-нибудь знает, как я могу обойти это?Ruby on Rails Time.now

мне просто нужно проверить, чтобы убедиться, что 10 минут прошло с тех пор я создал объект времени по сравнению с Time.now

+0

Какой двигатель базы данных вы используете? –

ответ

2

Это звучит как столбец базы данных имеет тип time, а не datetime или timestamp. Это будет хранить только время и когда оно преобразуется в экземпляр Time в рубине (который поддерживает день, месяц, год и т. Д.) Значения по умолчанию используются для дня, месяца, года, поэтому вы видите 2000 год .

Возможно, вам необходимо обновить столбец базы данных datetime или timestamp, если это проблема, поскольку кажется, что вы хотите, чтобы в любом случае вы хотите, чтобы день, месяц, год составляли части времени. В этом случае вы будете сравнивать.

+0

Да, это звучит правдоподобно. – einarmagnus

+0

Да, столбец имеет тип времени. Я пытаюсь создать созданную часть, и она все еще не работает. – Brian

+0

Не уверен, что вы имеете в виду. Я не упоминал created_at. – Shadwell

0

created_at < 10.minutes.ago должен работать

+0

, который, похоже, не работает. Если я просто создаю объект и набираю 1 минуту назад после 2, он все еще говорит правду – Brian

+0

попробуйте добавить to_date и посмотреть, что помогает 'created_at <10.minutes.ago.to_date' – einarmagnus

+0

Является ли ваш сервер базы данных на том же компьютере, что и текущий код? – einarmagnus