My setup: Rails 3.0.9, Ruby 1.9.2
I'm looking into a pagination solution for my app and saw that there is a new-ish gem Kaminari
compared to the trusty will_paginate
. It looks like will_paginate
wasn't updated for awhile but has since came back with V3.0. What's the consensus, is one preferred over the other and why? Thanks in advance for your insights.
EDIT
I asked Ryan Bates on Twitter and he said
Both do the job equally well. The biggest factor is if you use any
gems which require pagination since they are incompatible. I do like
will_paginate's non-engine approach a bit more, but that's a personal
preference.
Kaminari Rocks if you are using rails 3+ , I like to use it because
- It is latest library and supports rails 3+ powerfully.
- 'Kaminari' is Easy to use and it supports
ajax
very easily.
- Paginate pure Object way.
- It works as a proxy on AREL, no specific paginate method overloaded on ActiveRecord
- Does not pollute the Array or Hash object
More standard rails support for other view formats, most important mobile
User.page(7).per(50)
But if you are using rails 2.3 etc. keep stick with will_paginate that also works with rails 3 +, but internally its not such perfect as Kaminari code.
I really like Kaminari. I don't know if will_paginate does this, but Kaminari also can paginate any regular old Array
:
Kaminari.paginate_array(an_array).page params[:page]
There are Railscasts for both, which I recommend watching.
watch the kaminari railscast an then watch the will paginate railscast
Ryan Bates advises in the comments that Kaminari makes heavier use of partials, which might make it fractionally slower, but not much
I have used both Gems, and frankly, I like Kaminari better. It's so easy to use. I haven't seen any performance issues or environment issues (my app lives on Heroku).
While will_paginate does the job pretty quickly, Kaminari also allow you to quickly edit the pagination HTML output.
This was a great thing for me, since i am using Bootstrap 3, and wanted to use the default paginations styles.
There is a gem for will_paginate that allows you to do the same, but Kaminari it's much more flixible