Rails返回最接近日期的结果

时间:2017-06-21 20:16:50

标签: ruby-on-rails postgresql activerecord

我有一种方法可以返回一组结果,如果它是星期二,星期三或星期四。那部分工作正常,else我无法解决问题。

我希望它返回的是与我的数据模型上的Date.today列相比最接近date的结果。

但目前它会返回前一周的结果,并且在我的查询中添加+ 1.week+ 7.days没有做任何事情。

def method
  if Date.today.tuesday? || Date.today.wednesday? Date.today.thursday?
    @foobar = @foobar.where(completed: :false).limit(4)
  else
    @foobar = @foobar.where('date > ?', Date.today).limit(4)
  end
end

1 个答案:

答案 0 :(得分:1)

您的查询没有order范围,因此Rails不按日期排序。在您的else中,您似乎想要检索比今天日期更近的Foobars 4个。

所以试试@foobar.where('date > ?', Date.today).order(date: :asc).limit(4)