带分页轨道的序列号

时间:2013-10-14 10:48:53

标签: ruby-on-rails pagination

我在索引页面使用分页,其中列出了所有用户信息,如姓名,电子邮件等。在表格中,我想按顺序显示序列号[1,2,3 ...]。如果我使用user_id,并且如果我删除了该用户,则该号码将不按顺序丢失。我在视图中使用以下代码

 <% @user.each_with_index do |d, i| %>

 <tr>

    <td><%= i+1 %></td>
    <% if d.profile.present? %>
   <td><%= link_to d.profile.first_name+ " "+d.profile.last_name, posts_individualpostlink_path(:id => d.id) %> </td>
   <% else %>
    <td><%= "No Profile" %></td>
    <% end %>       
   <td><%= d.email %></td>
   <% if d.profile.present? %>
   <td><%= d.profile.date_of_birth %> </td>
   <% else %>
    <td><%= "No Profile" %></td>
    <% end %>

  </tr>
<% end %>

</table>
 <%= will_paginate @user %>

当我再次进入第二页时,序列号以[1,2,....]开头。每页如果我给10个用户,第二页应该在表格中显示[11,12,13,.....。

任何人都可以帮助我这样做。感谢

2 个答案:

答案 0 :(得分:5)

尝试

<% 
count = ((params[:page] || 1).to_i - 1) * 10
@user.each_with_index do |d, i| %>

 <tr>

    <td><%= count + i %></td>

答案 1 :(得分:0)

在回答问题之前,请注意:在您的代码中停止使用单字母变量。它使它完全不可读。 为什么不使用<% @user.each_with_index do |user, idx| %>?现在在你的代码块中,很容易理解你总是引用用户。

现在回答。将paginate添加页面参数到分页链接。所以在你的控制器中你应该能够做到这一点:

@page = params[:page] || 1

之后使用它来计算您视图中的正确数字:

<td><%= (@page - 1) * number_of_items_on_page + i+1 %></td>