如何用Ruby编写查询来查询某个时间小于1小时或3小时的对象



我有一个旅行start_at列,我需要得到Tripstart_at小于1小时或3小时(只有当start_at时,我应该得到trip对象)& lt;1小时或<3小时不为<2小时,& lt;4人力资源,……等等)。

注意:我有Cron每15分钟运行一次的作业。到达的时间对象

示例:假设我有一个旅行,start_at = 9:00 am,当前时间是10:00 am,我应该得到那个trip对象。3小时也是如此(start_at = 9:00 am,当前时间为12:00 am)

^^除以上两种情况外,我不应该得到trip对象,只需要得到少于1hr或3hr

这是我尝试过的

Trip.where("start_at < ? ", 1.hour.ago)

但上面的查询返回旅行对象即使start_at <2小时前,4小时前,.....哇啦

我是Ruby新手,任何帮助都会很感激。谢谢!

Trip.where(start_at: 2.hours.ago..1.hour.ago).or(Trip.where(start_at: 4.hours.ago..3.hour.ago))

您可以使用或查询,或使用数组值:

Trip.where(start_at: [2.hours.ago..1.hour.ago, 4.hours.ago..3.hour.ago])

相关内容

  • 没有找到相关文章

最新更新