I needed a pagination feature, without the need of a full page reload. So I had a look at Kaminari, which is the only paging gem that seems to be active. All though, the default implementation of Kaminari with AJAX enabled by just doing:

1
= paginate @users, :remote => true

Didn’t seem to work at all…

Here’s my implementation which is fully working. I’m using news articles as an example.

news_controller.rb

1
2
3
4
5
6
7
8
def index
@news = News.all.page(params[:page]).per(10)

respond_to do |format|
format.html
format.js { render :layout => false }
end
end

_ news.haml

1
2
3
4
5
6
7
8
  %table.table.table-condensed.table-striped.table-hover
%tr
%th Title
%th Content
- @news.each do |n|
%tr
%td= n.title
%td= n.content

index.haml

1
2
3
4
5
  #news-table
= render 'news'

#news-paginator
= paginate @news, :remote => true

index.js.erb

1
2
  $('#news-table').html('<%= escape_javascript(raw(render 'news')) %>');
$('#news-paginator').html('<%= escape_javascript(paginate(@news, remote: true)) %>');

Hope this implementation works for those that faced the same problem as I, with the default AJAX pagination not working.

Feel free to PM me if any questions.

Regards