我在索引页面使用分页,其中列出了所有用户信息,如姓名,电子邮件等。在表格中,我想按顺序显示序列号[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,.....。
任何人都可以帮助我这样做。感谢
答案 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>