获取will_paginate以反转每页顺序

时间:2014-08-27 13:12:00

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

我试图让will_paginate订购我的帖子,以便最新帖子显示在第一页的顶部,但我似乎无法弄清楚如何让它做到这一点。

这是我按...order(:published_at)

排序时的顺序

第1页

2014-08-05
2014-08-04
2014-08-03
2014-08-02
2014-08-01 <- Oldest post

第2页

2014-08-10 <- Newest post
2014-08-09
2014-08-08
2014-08-07
2014-08-06

当我...order("published_at DESC")

时,这就是它的作用

第1页

2014-08-06
2014-08-07
2014-08-08
2014-08-09
2014-08-10 <- Newest post

第2页

2014-08-01 <- Oldest post
2014-08-02
2014-08-03
2014-08-04
2014-08-05

但这是我真正想要的顺序:

第1页

2014-08-10 <- Newest post
2014-08-09
2014-08-08
2014-08-07
2014-08-06

第2页

2014-08-05
2014-08-04
2014-08-03
2014-08-02
2014-08-01 <- Oldest post

1 个答案:

答案 0 :(得分:0)

不幸的是,就我而言,我是我自己最大的敌人。

这是我在index.html.erb

中的代码
<% @blog_posts.reverse.each do |blog_post| %>
  #            ^^^^^^^
  <%= render "blog_post", blog_post: blog_post %>
<% end %>

这应该是我index.html.erb

中的代码
<% @blog_posts.each do |blog_post| %>
  <%= render "blog_post", blog_post: blog_post %>
<% end %>

并在我的控制器中

def index
  @blog_posts = BlogPost.
    published.
    page(params[:page]).
    order("published_at DESC")
end

生成此订单

第1页

2014-08-10 <- Newest post
2014-08-09
2014-08-08
2014-08-07
2014-08-06

第2页

2014-08-05
2014-08-04
2014-08-03
2014-08-02
2014-08-01 <- Oldest post