рельсы 3 найти () между теперь и полуночи - PullRequest
2 голосов
/ 26 апреля 2011

У меня есть модель события, которая имеет start_at типа datetime. Как я могу найти, осталось ли событие на сегодня, так что start_at между сегодняшним днем ​​и полуночью.

Спасибо

Ответы [ 3 ]

11 голосов
/ 26 апреля 2011

В Rails 3 вы можете сделать это сейчас:

Условия диапазона

Если вы ищете диапазон внутри таблицы (например, пользователи создали в определенные сроки) вы можете использовать вариант условий в сочетании с В заявлении SQL для этого. Если у тебя есть две даты из контроллера вы могли бы сделать что-то подобное искать диапазон:

Client.where(:created_at => (params[:start_date].to_date)..(params[:end_date].to_date))

Так что в вашем случае это будет:

Event.where(:start_at => (Time.zone.now)..(Time.zone.now.end_of_day))

Только что протестировано и работает без скобок вокруг Time.zone.now и Time.zone.now.end_of_day.

(Из Направляющие рельсов )

3 голосов
/ 26 апреля 2011
Event.where('start_at >= ? and start_at <= ?', Time.zone.now, Time.zone.now.end_of_day)

Вам придется иметь дело с пользовательскими часовыми поясами, если вы хотите, чтобы это было совершенно точно для нескольких пользователей.

0 голосов
/ 26 апреля 2011
Event.where("start_at BETWEEN ? AND ?", Time.zone.now, Time.zone.now.end_of_day)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...