在没有秒的情况下比较Rails中的时间

时间:2017-06-06 12:05:53

标签: ruby-on-rails ruby-on-rails-4 ruby-on-rails-5

在我的Rails 5应用程序中,我想在数据库中的特定日期时间后10分钟发送警报。例如,在created_at datetime。

之后10分钟

所以我每隔1分钟运行一次cronjob,并且必须在我的数据库中查找创建__是10分钟前的所有记录。

我的created_at字段的格式为2017-06-01 12:00:00。如何在10分钟前获取created_at所在的所有记录?

我的问题是秒,我不能简单做(这不是有效的Ruby代码,只是为了表明我的观点):

where created_at == 10.minutes.ago

我必须做类似

的事情
where created_at > 10.minutes.ago AND created_at < 9.minutes.ago

但这似乎不太干净。有更好的解决方案吗?

1 个答案:

答案 0 :(得分:1)

你必须提供范围才能获得记录。但是,为了避免依赖于秒,你可以优雅地做下面的事情。

range = range = 10.minutes.ago.beginning_of_minute..10.minutes.ago.end_of_minute
records = YourModel.where(created_at: range)