Ma configuration: Rails 3.0.9, Ruby 1.9.2
Je regarde dans une solution de pagination pour mon application et j'ai vu qu'il y a un nouveau-ish gem Kaminari
comparé au fiduté will_paginate
. On dirait que will_paginate
N'était pas mis à jour pendant un certain temps mais est revenu depuis v3.0. Quel est le consensus, est-ce que l'on préfère sur l'autre et pourquoi? Merci d'avance pour vos idées.
ÉDITER
J'ai demandé à Ryan Bates sur Twitter et il a dit
Les deux font le travail aussi bien. Le facteur le plus important est que si vous utilisez des pierres précieuses nécessitant une pagination car elles sont incompatibles. J'aime bien l'approche non-moteur de Will_paginate un peu plus, mais c'est une préférence personnelle.
Kaminari Rocks Si vous utilisez Rails 3+, j'aime l'utiliser parce que
ajax
très facilement.Plus de standard Rails Prise en charge des autres formats d'affichage, le plus important mobile
User.page(7).per(50)
Mais si vous utilisez Rails 2.3, etc. Gardez le bâton avec Will_paginate qui fonctionne également avec Rails 3 +, mais en interne, il n'est pas tellement parfait que le code Kaminari.
J'aime vraiment Kaminari. Je ne sais pas si Will_paginate fait cela, mais Kaminari peut également paginer tout vieux Array
:
Kaminari.paginate_array(an_array).page params[:page]
Il y a railscasts pour les deux, que je vous recommande de regarder.
regardez les kaminari railscast an, puis surveille le Paginate Railscast
Ryan Bates conseille dans les commentaires que Kaminari utilise une utilisation plus lourde des partiels, ce qui pourrait le rendre plus lent, mais pas beaucoup
Pendant que Will_paginate fait le travail assez rapidement, Kaminari vous permet également de modifier rapidement la sortie HTML de pagination.
C'était une bonne chose pour moi, car j'utilise Bootstrap 3 et je voulais utiliser les styles de paginations par défaut.
Il y a un joyau pour Will_paginate qui vous permet de faire de même, mais Kaminari c'est beaucoup plus flamme
J'ai utilisé les deux gemmes et franchement, j'aime mieux Kaminari. C'est tellement facile à utiliser. Je n'ai pas vu de problèmes de performance ou d'environnement (mon application vit sur Heroku).