所以我有一个查询要从我关注的每个用户那里获取最新的帖子。像这样:
query = Post.select("DISTINCT ON (user_id) *")
.includes(:likes).includes(:comments)
.where(user_id: followings)
.where(silently_deleted: false)
.order(user_id: :desc, created_at: :desc)
问题是帖子不会按日期排序。而且我真的无法执行 sort_by
因为我们正在分页。
有没有办法通过 created_at
进行排序,同时仍然保持唯一性?
最佳答案
试试这个:
query = Post.select("DISTINCT ON (user_id) *")
.includes(:likes).includes(:comments)
.where(user_id: followings)
.where(silently_deleted: false)
.order(user_id: :desc)
.order("posts.created_at DESC")
您需要显式添加表名,因为点赞和评论表也有列名 created_at
关于ruby-on-rails - Rails 不同的用户记录,按时间排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37311919/