2014-12-02 52 views
0

我使用will_paginate與軌道4和有下面的代碼在我的用戶控制:will_paginate gem是呈現每個條目4次軌道

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個頁面,但每個頁面上應該有一個用戶,但是任何限制> 1且會中斷。

任何有關如何解決它的見解,使每個頁面上只出現10個用戶將非常感激。

+0

你肯定' <%= render @users%>'是正確的?不應該是'<%= render user%>' – 2014-12-02 01:11:29

回答

2

我發現你的錯誤。你需要渲染@users一次。希望它能在你身邊運作。 :)

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

還需要渲染分頁與下面的代碼

<%= will_paginate @users %> 
+0

當然可以。我需要去睡覺!我不知道我怎麼沒有抓住這個!?看起來我正處於重構的中間,忘記了結束。謝謝 – rorykoehler 2014-12-02 01:43:19

0

你需要渲染調用中引用該塊變量user,不@users

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