Rails 3 pagination, will_paginate vs. Kaminari

Ma configuration: Rails 3.0.9, Ruby 1.9.2

Je cherche une solution de pagination pour mon application et j’ai vu qu’il y avait un nouveau joyau Kaminari comparé au fidèle will_paginate . Il semble que will_paginate n’ait pas été mis à jour depuis un certain temps, mais qu’il est revenu depuis avec la version 3.0. Quel est le consensus, est-on préféré à l’autre et pourquoi? Merci d’avance pour vos idées.

MODIFIER

J’ai demandé à Ryan Bates sur Twitter et il a dit

Les deux font le travail aussi bien. Le facteur le plus important est si vous utilisez des gemmes qui nécessitent une pagination car elles sont incompatibles. Je préfère l’approche non-moteur de will_paginate, mais c’est une préférence personnelle.

Kaminari Rocks si vous utilisez des rails 3+, j’aime l’utiliser car

  1. C’est la dernière bibliothèque et supporte puissamment les rails 3+.
  2. “Kaminari” est facile à utiliser et supporte très facilement ajax .
  3. Paginer de manière pure object .
  4. Il fonctionne comme un proxy sur AREL, aucune méthode de pagination spécifique surchargée sur ActiveRecord
  5. Ne pollue pas l’object Array ou Hash
  6. Plus de prise en charge des rails standard pour les autres formats d’affichage, le plus important des mobiles

     User.page(7).per(50) 

    Mais si vous utilisez des rails 2.3, restz fidèle à will_paginate qui fonctionne aussi avec les rails 3 +, mais en interne, ce n’est pas aussi parfait que le code Kaminari.

J’aime beaucoup Kaminari. Je ne sais pas si will_paginate fait ça, mais Kaminari peut aussi paginer n’importe quel ancien Array :

 Kaminari.paginate_array(an_array).page params[:page] 

Il y a des Railscasts pour les deux, que je recommande de regarder.

regarder les rails de kaminari puis regarder les rails de pagination

Ryan Bates conseille dans les commentaires que Kaminari utilise plus souvent les partiels, ce qui pourrait le ralentir, mais pas beaucoup.

J’ai utilisé les deux gemmes, et franchement, j’aime mieux Kaminari. C’est si facile à utiliser. Je n’ai pas vu de problèmes de performance ou d’environnement (mon application vit sur Heroku).

Alors que will_paginate fait le travail assez rapidement, Kaminari vous permet également d’éditer rapidement la sortie HTML de la pagination.

C’était une bonne chose pour moi, car j’utilise Bootstrap 3, et je voulais utiliser les styles de pagination par défaut.

Il y a un petit bijou pour will_paginate qui vous permet de faire la même chose, mais Kaminari c’est beaucoup plus flixible