Чтобы разбить на страницы с помощью AJAX вместо обновления страницы, вам нужно добавить data-remote="true"
ко всем ссылкам на страницы.
data-remote="true"
- это помощник рельсов, который заставит сервер интерпретироватьзапрос в виде JS вместо HTML.
Первый шаг, создайте новый помощник:
module RemoteLinkPaginationHelper
class LinkRenderer < WillPaginate::ActionView::LinkRenderer
def link(text, target, attributes = {})
attributes['data-remote'] = true
super
end
end
end
Во-вторых, добавьте метод paginate
в application_helper.
module ApplicationHelper
def paginate(collection, params= {})
will_paginate collection, params.merge(:renderer => RemoteLinkPaginationHelper::LinkRenderer)
end
end
Затем вы можете заменить это:
<div class="row justify-content-center align-items-center">
<div class="page_info">
<h5><%= will_paginate @imports, :container => false %></h5>
</div>
</div>
на это:
<div class="row justify-content-center align-items-center">
<div class="page_info">
<h5><%= paginate @imports, :container => false %></h5>
</div>
</div>
Я получил эти шаги из этого фрагмента GitHub: https://gist.github.com/jeroenr/3142686