Rails 3 разбиение на страницы, will_paginate против Kaminari
Моя настройка: Rails 3.0.9, Ruby 1.9.2
Я просматриваю приложение для разбивки на страницы для своего приложения и вижу, что есть новый-жемчуг Kaminari
по сравнению с надежным will_paginate
. Похоже, что will_paginate
не обновлялся некоторое время, но с тех пор вернулся с V3.0. Какой консенсус, один предпочтительнее другого и почему? Заранее благодарим за понимание.
ИЗМЕНИТЬ
Я спросил Райана Бейтса в Twitter, и он сказал
Оба делают работу одинаково хорошо. Самый большой фактор - если вы используете какие-либо драгоценные камни, которые требуют разбиения на страницы, поскольку они несовместимы. я действительно люблю will_paginate немоторный подход немного больше, но что личный предпочтение.
Ответы
Ответ 1
Kaminari Скалы, если вы используете рельсы 3+, мне нравится использовать его, потому что
- Это последняя библиотека и поддерживает рельсы 3+ мощно.
- "Kaminari" прост в использовании и поддерживает
ajax
очень легко.
- Paginate pure Объект.
- Он работает как прокси-сервер на AREL, никакой специфический метод paginate, перегруженный на ActiveRecord
- Не загрязняет объект Array или Hash
-
Более стандартные рельсы поддерживают другие форматы представления, самый важный мобильный
User.page(7).per(50)
Но если вы используете рельсы 2.3 и т.д., держите палку с will_paginate, которая также работает с рельсами 3 +, но внутренне не такая совершенный как код Каминари.
Ответ 2
Мне очень нравится Каминари. Я не знаю, сделает ли will_paginate это, но Kaminari также может разбивать на страницы любые обычные старые Array
:
Kaminari.paginate_array(an_array).page params[:page]
Есть Railscasts для обоих, которые я рекомендую смотреть.
Ответ 3
смотреть kaminari railscast, а затем смотреть будет paginate railscast
Райан Бейтс советует в комментариях, что Каминари более тяжело использует частичные, что может сделать его менее медленным, но не намного
Ответ 4
Я использовал оба Gems, и, честно говоря, мне нравится Kaminari лучше. Он настолько прост в использовании. Я не видел никаких проблем с производительностью или проблем с окружающей средой (мое приложение живет на Heroku).
Ответ 5
В то время как will_paginate выполняет работу довольно быстро, Kaminari также позволяет вам быстро редактировать вывод HTML с разбивкой по страницам.
Это было замечательно для меня, так как я использую Bootstrap 3 и хотел использовать стили paginations по умолчанию.
Существует жемчужина для will_paginate, которая позволяет вам делать то же самое, но Kaminari это гораздо более flixible