ruby 在活动记录中查询创建日期小于无穷大

l3zydbqr  于 12个月前  发布在  Ruby
关注(0)|答案(2)|浏览(81)

我需要过滤两个月前从今天的日期(今天的日期必须是动态的,而不是固定的)创建的所有用户。但是活动记录并不完全理解我想要什么。我提出这个问题:

range_expired = ((2.months.ago).end_of_day)..((Date.today).end_of_day)
current_status = StudentStatusChange.where(created_at < range_expired)
8oomwypt

8oomwypt1#

如果您需要从2个月前(不包括)到今天的日期(包括)的所有记录,您可以使用这样的东西

range_expired = 2.months.ago.end_of_day..Date.today.end_of_day

StudentStatusChange.where(created_at: range_expired)

其他变体:

# works in ruby >= 2.6
range_expired = 2.months.ago.end_of_day..
StudentStatusChange.where(created_at: range_expired)
StudentStatusChange.where("created_at > ?", 2.months.ago.end_of_day)
StudentStatusChange.where("created_at > :two_months_ago", two_months_ago: 2.months.ago.end_of_day)
gudnpqoy

gudnpqoy2#

这里有一个解决您的问题的一行解决方案:

StudentStatusChange.where(created_at: Date.today - 2.months..Date.today)

Above Query将返回在过去两个月内创建的StudentStatusChange对象的结果。

相关问题