Rails 4 pagination, will_paginate vs. Kaminari с использованием bootstrap3

Я понимаю, что Kaminari хорошо работает с Rails3, читающим эту статью: Rails 3 pagination, will_paginate vs. Kaminari, но как насчет Rails4? Кроме того, при стилизации их с помощью Bootstrap3, какой камень является более простым решением?

Ответы

Ответ 1

В моем опыте очень мало различий между Kaminari и Will Paginate - это в основном личный выбор, который вы используете (скорее, как Paperclip/Carrierwave или Mac / Windows)

В плане совместимости оба драгоценных камня работают с Rails 4


Bootstrap

В отношении Bootstrap, я думаю, вы задаете неправильный вопрос

Bootstrap - это CSS-фреймворк, который не имеет отношения к функциональным возможностям вашего приложения

В нижней строке вы должны будете вызвать методы разбиения на страницы с вашего контроллера, и поэтому различия в системах будут только косметическими. Если вы используете стилистику Bootstrap, вам придется сделать то же самое с помощью gem

Итак, выбор за вами!

Ответ 2

Довольно легко реализовать разбиение на страницы твиттера с помощью Kaminari. Просто выполните следующие действия:

  • Добавьте gem 'kaminari' к вашему GemFile. Запустите bundle install и перезапустите сервер rails
  • Проверьте темы Kaminary - в вашем случае вам понадобится тема bootstrap3
  • Выполнить rails g kaminari:views bootstrap3

Что это.

Ответ 3

Kaminari отлично работает для меня с Rails 4.1.5

Вы можете заставить его работать с Bootstrap 3, изменив одну строку кода в сгенерированной теме Bootstrap для Kaminari

В Представления/Каминари/_paginator.html.erb

Изменить эту строку: <div class="pagination"><ul>

К этому: <ul class="pagination pagination-lg">

.. и избавиться от div; просто используйте ul выше - отлично работает для меня.


Вот код для всего частичного:

  <%= 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 %>