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