Rails `где` за время меньше запросов

Настроить

Рельсыwhere Метод может взять диапазон в хэше, чтобы сгенерировать запрос, который будет искать значение, находящееся в пределах диапазона. Например:

User.where(cash_money: 10..1000)
#=> SELECT `users`.* FROM `users`  WHERE (`users`.`cash_money` BETWEEN 10 AND 1000)

Это также может быть использовано с отметками времени, такими как

User.where(last_deposit: 10.days.ago..1000.days.ago)
#=> SELECT `users`.* FROM `users`  WHERE (`users`.`last_deposit` BETWEEN '2014-05-19 14:42:36' AND '2011-09-02 14:42:36')

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

User.where(cash_money: 10..Float::INFINITY)
#=> SELECT `users`.* FROM `users`  WHERE (`users`.`cash_money` >= 10)

и то же самое можно сделать с-Float::INFINITY меньше, чем запросы.

Вопрос

Есть ли способ сделать это с отметками времени, чтобы я мог получить запрос, подобный следующему?

SELECT `users`.* FROM `users`  WHERE (`users`.`last_deposit` >= '2014-05-19 14:42:36')

Я не могу использоватьFloat::INFINITY или жеDate::Infinity с диапазоном, так как они оба с ошибкойArgumentError: bad value for range.

Текущее простое решение
User.where('`users`.`last_deposit` >= ?', 10.days.ago)

будет генерировать тот же SQL, но если это можно сделать с объектами, отличными от строк, я бы хотел это сделать.

Потенциальный (Мех) Ответ

Это вроде паршиво, но это можно сделать с помощью диапазоновTime.at(0) а такжеTime.at(Float::MAX), Я чувствую, что это может привести к одинаково паршивым SQL-запросам.

Ответы на вопрос(4)

Ваш ответ на вопрос