Ruby Rails Select 日期范围

Ruby on Rails Select with date range

我正在尝试让下面的句子起作用,

User.all.select{ |user| user.created_at === DateTime.yesterday..DateTime.today }

User.all.select{ |user| user.created_at == DateTime.yesterday..DateTime.today }

User.all.select{ |user| user.created_at => DateTime.yesterday..DateTime.today }

这不起作用并提示 bad value for range 错误。

我知道有更有效的方法可以完成此操作并获得相同的结果,但我对如何使用日期范围select 工作感兴趣

range = (DateTime.yesterday..DateTime.now)
User.all.select { |user| range.cover?(user.created_at) }

因为你在 Rails 3,你可以这样做:

User.find(:all, :conditions => {:created_at => DateTime.yesterday.. DateTime.today})

请注意,此后已弃用:

User.where(:created_at => DateTime.yesterday..DateTime.today)