因分页而无法改变顺序

时间:2013-03-15 21:10:23

标签: ruby-on-rails sorting pagination will-paginate

我想通过降序排序users。但是,当我添加.reverse时,它会一次反转users一页,而不是一起反转。

show_followers:

<%= render @users.reverse %>
<%= will_paginate %>

用户/ _user:

<%= link_to user.name, user %>

<% unless @user.nil? %>

  <% if request.path == "/users/#{@user.id}/listening_to" %>
    <br/>
    <span id="member_since"><%= "Listening Since" %> <%= @user.relationships.find_by_followed_id(user.id).created_at.strftime("%b. %d, %Y") %></span>
  <% end %>

  <% if request.path == "/users/#{@user.id}/listeners" %>
    <br/>
    <span id="member_since"><%= "Listener Since" %> <%= user.relationships.find_by_followed_id(@user.id).created_at.strftime("%b. %d, %Y") %></span>
  <% end %>

<% end %>

控制器:

@users = @user.followed_users.paginate(page: params[:page])

似乎Rails按照我想要的relationships_create智能地命令,但它按升序排列。我希望最新的关注者出现在列表的顶部。

2 个答案:

答案 0 :(得分:2)

在控制器操作中,您可能有一些看起来像这样的代码:@users = User.paginate(:page => params[:page])

您需要在该语句中添加相反的内容,因此它看起来像这样:@users = User.paginate(:page => params[:page]).order('id DESC')(可能id替换为created_at)。

答案 1 :(得分:1)

@users = @user.followed_users.reverse.paginate(page: params[:page])

在分页之前在控制器级别反转