私はtime
属性のモデルを持っています。ユーザーがEメール(午後5時)を受信したい場合の設定です。データベースには21:00:00
という名前で保存されています。私は範囲でそれを照会したいと思います。たとえば、リマインダーの時間が「20:55:00
」から「21:05:05
」までのすべてのユーザーに通知したいとします。Rails:アクティブレコードのモデルの日付ではなく、時間範囲を照会する方法
Railsは完全なDateTimeとして表示する必要があるため、データベースに21:00:00
が含まれていますが、レールにロードすると、2000-01-01 17:00:00と表示されます。
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
これは私のテストケースで動作しますが、私はテストの外にそれをしようとしたときに動作しません。
私のコードは今のように見えます。思考?シナリオを処理する適切な方法はありますか、それとも間違っているのでしょうか?
:ダブルコロン演算子(
::
)を使用して行うことができ!私はちょうど変換を混乱させ始めました。 – mattmcmanus