will_paginate для массива отображает только первую страницу элементов
Мне нужно разбить массив на страницы. Когда я нажимаю на другие страницы, я вижу те же 25 элементов, которые отображаются на первой странице. URL является http://localhost:3000/?page=2
но это те же 25 предметов. Всего их около 100.
Вот мой метод контроллера:
def index
@items = Array.new
API.items.all! do |i|
@items << i
end
@paginated_items = @items.paginate(per_page: 25)
end
Вот мой HTML-файл:
<%= will_paginate @paginated_items %>
<ul class="items">
<% @paginated_items.each do |i| %>
<li>Subject: <%= i.subject %>, ID: <%= i.id %></li>
<% end %>
</ul>
<%= will_paginate @paginated_items %>
Я также добавил require 'will_paginate/array'
инициализатору.
1 ответ
Решение
Я думаю, что вы пропустили страницу: params[:page] в контроллере индекса, вот как will_paginate узнает, какую страницу вы сейчас используете.
def index
@items = Array.new
API.items.all! do |i|
@items << i
end
@paginated_items = @items.paginate(page:params[:page],per_page:25)
end