如何在rails中获取最近24小时的数据

时间:2016-10-28 12:21:59

标签: ruby-on-rails ruby sorting activerecord

有一个模型post。帖子由PM或用户创建。我希望获得PM在过去24小时内创建的帖子的所有帖子。

我试试

posts.sort_by{|t| -t["role_id"] }

但是这个PM的所有帖子都在最前面。我希望PM帖子只持续24小时。

2 个答案:

答案 0 :(得分:2)

试试这个: Post.where('created_at > ?', 24.hours.ago).order(role_id: :asc)

答案 1 :(得分:1)

要确认您的问题,您希望所有记录和排序为:

  1. 由pm&&创建的记录在过去24小时内(内部按其他方式排序)
  2. 后面是按其他方式排序的所有其他记录。
  3. 我会创建一个像这样的合成布尔排序字段:

    time = 24.hours.ago.strftime("%Y-%m-%d %M:%S")
    Post.order("(created_at < '#{time}' && cont_term = 24) ASC")
    

    它将解析为0或1,因此您可以先按此字段排序,然后添加其他order()子句以在这些组中进行排序。