我试图获得一个对象的最后5天。目前我的代码是这样的
Post.uniq('performed_at').ascending.last(5).group_by{|p| p.performed_at}
但是我已经获得4个日期而不是5个日期,我认为这是因为在同一天创建的最后5个日期中有2个条目。如何准确地获取帖子有条目的最后5天?
答案 0 :(得分:3)
你可以这样做:
Post.select('DISTINCT created_at').order('created_at DESC').limit(5).pluck(:created_at)
答案 1 :(得分:0)
假设您只想要日期本身,而不是唯一的日期时间,那就更好了:
Post.order('created_at desc').uniq.limit(5).pluck('DATE(created_at)')
这将只返回唯一的日历日期,没有任何特定时间。
答案 2 :(得分:0)
只是对此进行更新。我得到了它,这就是我做到的。
Post.select('performed_at').uniq.order('performed_at DESC').limit(5).pluck(:performed_at).reverse
我还添加了反向,因为我希望按时间顺序返回给我几天。我也有uniq()因为select(' DISTINCT perform_at')仍然返回重复的日期。
希望这有帮助。