Will_Paginate Gem with Rails显示错误顺序的结果

时间:2016-03-10 01:36:27

标签: ruby-on-rails ruby ruby-on-rails-4 activerecord will-paginate

尝试按关联字段对条目进行排序,遗憾的是,在使用Will Paginate进行分页时,排序是错误的。

@categories = Category.includes(:posts)
.page(params[:page])
.order("posts.post_at DESC")

我尝试了很多变化,但不幸的是,paginate似乎并不尊重类别的排序顺序。没有分页,类别就会正确排序。

我怎样才能让Will Paginate尊重订单?

最终目标是按posts.post_at排序的类别,并在保持该顺序的同时进行分页。

感谢。

2 个答案:

答案 0 :(得分:0)

尝试

@categories = Category.includes(:posts).order("posts.post_at DESC").paginate(:page => params[:page], :per_page => 10)

答案 1 :(得分:0)

很抱歉由于低代表而无法发表评论,但你想要排序的是什么以及你想要列出什么?

如果您希望按特定顺序排列相关帖子的类别,那么按字母顺序排列吗?

@categories = Category.includes(:posts).order('categories.name??').page(params[:page])

最新帖子的类别?

@categories = Category.includes(:posts).order("posts.post_at DESC").page(params[:page])

或者您是否想要列出与其一起列出的类别的最新帖子?

@posts = Post.includes(:category).order('posts.post_at DESC').page(params[:page])

目前还不清楚您的最终目标是什么。