Ich habe ein Modell mit einem time
Attribut. Es ist Konfiguration für wann ein Benutzer eine E-Mail erhalten möchte, d. H. 5 PM EST. Es ist in der Datenbank als 21:00:00
gespeichert. Ich würde es gerne nach Entfernung abfragen. Zum Beispiel möchte ich, dass jeder Benutzer eine Erinnerungszeit zwischen 20:55:00
und 21:05:05
hat.Rails: Wie Abfrage Zeitbereich, nicht Datum, Werte für ein Modell in ActiveRecord
Rails scheint Zeitattribute irgendwie seltsam zu behandeln, weil es als eine vollständige DateTime angezeigt werden soll, so hat die Datenbank 21:00:00
, aber wenn in Schienen geladen wird, zeigt es 2000-01-01 17:00:00.
jetzt Ihr Code wie folgt aussieht:
scope :receives_report_reminder_at, -> (time) do
start = (time - 5.minutes).strftime('%T')
ending = (time + 5.minutes).strftime('%T')
where(notification_report_reminder_time: start...ending)
end
Diese in meinem Testfällen funktioniert, aber funktioniert nicht, wenn ich es außerhalb der Tests versuchen. Gedanken? Gibt es einen richtigen Weg, um ein Szenario zu bewältigen, oder gehe ich falsch vor?
So einfach ist das! Ich hatte gerade angefangen, mich mit den Transformationen herumzuschlagen. – mattmcmanus