will_paginate gem渲染每个条目4次rails

时间:2014-12-02 01:05:16

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

我正在使用带有rails 4的will_paginate并在我的用户控制器中使用以下代码:

def index
  @users = User.paginate(page: params[:page], :per_page => 10)
end

在我看来:

<% provide(:title, 'All users') %>
<h1>All Users</h1>

<%= will_paginate %>

<ul class="users">
  <% @users.each do |user| %>
     <%= render @users %>
  <% end %>
</ul>

<%= will_paginate %>

这会呈现所有用户,但每页有40个,而不是10个。每个页面都有正确的用户,但是有4次。例如,它再次呈现用户1 ... 10然后1 ... 10,依此类推。目前有101个用户,如果我将每页限制设置为1,则在每个页面上呈现101个页面,每个页面上有一个用户,因为它应该是任何限制&gt; 1,它打破了。

任何有关如何解决问题的见解,每个页面上只有10个用户会非常感激。

2 个答案:

答案 0 :(得分:0)

我发现了你的错误。你需要渲染一次@users。希望它适合你。 :)

<ul class="users">
   <%= render @users %>
</ul>

您还需要使用以下代码进行分页

<%= will_paginate @users %>

答案 1 :(得分:0)

您需要在渲染调用中引用块变量user,而不是@users

<ul class="users">
  <% @users.each do |user| %>
     <%= render user %>
  <% end %>
</ul>