Rails "wo" für weniger Zeit als Abfragen

Konfiguration

Schienen'where Methode kann einen Bereich in einem Hash verwenden, um eine Abfrage zu generieren, die nach einem Wert sucht, der innerhalb des Bereichs liegt. Zum Beispiel:

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

Dies kann auch mit Zeitstempeln wie verwendet werden

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')

Ich habe herausgefunden, dass Sie mit der Hash-Syntax wie dieser eine einfache Operation ausführen können, die kleiner oder größer ist als Zahlen

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

und das gleiche kann mit getan werden-Float::INFINITY für weniger als Abfragen.

Frage

Gibt es eine Möglichkeit, dies mit Zeitstempeln zu tun, damit ich eine Abfrage wie die folgende erhalten kann?

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

Ich kann nicht benutzenFloat::INFINITY oderDate::Infinity mit einem Bereich, da beide Fehler mitArgumentError: bad value for range.

Aktuelle einfache Lösung
User.where('`users`.`last_deposit` >= ?', 10.days.ago)

wird die gleiche SQL generieren, aber wenn dies mit anderen Objekten als Zeichenfolgen durchgeführt werden kann, würde ich dies gerne tun.

Mögliche (Meh) Antwort

Das ist ein bisschen mies, aber es könnte mit Bereichen gemacht werden, die verwendenTime.at(0) undTime.at(Float::MAX). Ich habe das Gefühl, dass dies zu ebenso miesen SQL-Abfragen führen könnte.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage