有一个模型post
。帖子由PM或用户创建。我希望获得PM在过去24小时内创建的帖子的所有帖子。
我试试
posts.sort_by{|t| -t["role_id"] }
但是这个PM的所有帖子都在最前面。我希望PM帖子只持续24小时。
答案 0 :(得分:2)
试试这个:
Post.where('created_at > ?', 24.hours.ago).order(role_id: :asc)
答案 1 :(得分:1)
要确认您的问题,您希望所有记录和排序为:
我会创建一个像这样的合成布尔排序字段:
time = 24.hours.ago.strftime("%Y-%m-%d %M:%S")
Post.order("(created_at < '#{time}' && cont_term = 24) ASC")
它将解析为0或1,因此您可以先按此字段排序,然后添加其他order()子句以在这些组中进行排序。