2014-12-02 2 views
0

Я использую will_paginate с рельсами 4 и имеют следующий код в мой контроллер пользователей:will_paginate камень делает каждую запись в 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%>' –

ответ

2

Я нашел вашу ошибку. Вам нужно отобразить @users один раз. Надеюсь, он работает на вашей стороне. :)

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

также необходимо оказывать пагинации с следующий код

<%= will_paginate @users %> 
+0

Да, конечно. Мне нужно поспать! Я не знаю, как я этого не поймал !? Кажется, я был в центре рефакторинга и забыл закончить. благодаря – rorykoehler

0

Вы должны ссылаться на блок переменной user в визуализации вызова, не @users

<ul class="users"> 
    <% @users.each do |user| %> 
    <%= render user %> 
    <% end %> 
</ul> 
Смежные вопросы