Je comprends que Kaminari
fonctionne bien avec Rails3 en lisant cet article: Rails 3 pagination, will_paginate vs. Kaminari , mais qu’en est-il de Rails4? En outre, lors de la stylisation avec Bootstrap3, quelle gemme est la solution la plus facile?
D'après mon expérience, il y a très peu de différence entre Kaminari
& Will Paginate
- il s'agit principalement d'un choix personnel que vous utilisez (plutôt comme Paperclip
/Carrierwave
ou Mac / Windows
)
En termes de compatibilité, les deux gemmes fonctionnent nativement avec Rails 4
Bootstrap
En référence à Bootstrap, je pense que vous posez la mauvaise question
Bootstrap est un CSS framework , qui n’a aucune incidence sur les fonctionnalités d’arrière-plan de votre application.
En bout de ligne, vous allez devoir appeler les méthodes de pagination à partir de votre contrôleur. Ainsi, les différences entre les systèmes ne seront que superficielles. Si vous utilisez Bootstrap pour les styliser, vous devrez faire la même chose avec l'un ou l'autre
Donc, c'est à toi de choisir!
Il est assez facile d'implémenter la pagination bootstrap de Twitter avec Kaminari
. Il suffit de suivre les étapes ci-dessous:
gem 'kaminari'
à votre GemFile
. Exécutez bundle install
et redémarrez le serveur Railsbootstrap3
Rails g kaminari:views bootstrap3
C'est tout.
Kaminari fonctionne très bien pour moi avec Rails 4.1.5
Vous pouvez le faire fonctionner avec Bootstrap 3 en modifiant une ligne de code dans le thème Bootstrap généré pour Kaminari
DansViews/Kaminari/_paginator.html.erb
Change cette ligne: <div class="pagination"><ul>
Pour ceci: <ul class="pagination pagination-lg">
..et se débarrasser de la div; utilisez simplement le ul ci-dessus - fonctionne bien pour moi.
Voici le code pour tout le partiel:
<%= paginator.render do %>
<ul class="pagination pagination-lg">
<%= first_page_tag unless current_page.first? %>
<%= prev_page_tag unless current_page.first? %>
<% each_page do |page| %>
<% if page.left_outer? || page.right_outer? || page.inside_window? %>
<%= page_tag page %>
<% elsif !page.was_truncated? %>
<%= gap_tag %>
<% end %>
<% end %>
<%= next_page_tag unless current_page.last? %>
<%= last_page_tag unless current_page.last? %>
</ul>
<% end %>