1

我正在为我的索引页面使用分页,其中列出了所有用户信息,如姓名、电子邮件等。在表格中,我想按 [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,.....

谁能帮我做到这一点。谢谢

4

2 回答 2

5

尝试

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

 <tr>

    <td><%= count + i %></td>
于 2013-10-14T11:02:50.903 回答
0

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

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

@page = params[:page] || 1

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

<td><%= (@page - 1) * number_of_items_on_page + i+1 %></td>
于 2013-10-14T11:05:21.120 回答