web-dev-qa-db-fra.com

Rails 3 Pagination, Will_paginate vs. Kaminari

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.

42
Bob

Kaminari Rocks Si vous utilisez Rails 3+, j'aime l'utiliser parce que

  1. Il est la dernière bibliothèque et supports Rails 3+ puissamment.
  2. 'Kaminari' est facile à utiliser et il prend en charge ajax très facilement.
  3. Paginate pur objet .
  4. Cela fonctionne comme un proxy sur Arel, aucune méthode de paginate spécifique surchargée sur ActiveRecord
  5. Ne pollère pas le tableau ou l'objet de hasch
  6. 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.

27
Manish Shrivastava

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.

19
clem

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

14
stephenmurdoch

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

1
pastullo

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).

1
Yosep Kim