Rails 3 нумерация страниц, will_paginate против Kaminari - PullRequest
42 голосов
/ 18 ноября 2011

Мои настройки: Rails 3.0.9, Ruby 1.9.2

Я ищу решение для разбивки на страницы для своего приложения и увидел, что есть новый драгоценный камень Kaminari по сравнению с верным will_paginate.Похоже, will_paginate не обновлялся некоторое время, но с тех пор вернулся с V3.0.Какой консенсус, один предпочтительнее другого и почемуЗаранее спасибо за ваши идеи.

РЕДАКТИРОВАТЬ

Я спросил Райана Бейтса в Твиттере, и он сказал:

Оба выполняют работу одинаково хорошо.Самый большой фактор, если вы используете какие-либо драгоценные камни, которые требуют нумерации страниц, поскольку они несовместимы.Мне больше нравится не-движковый подход will_paginate, но это личное предпочтение.

Ответы [ 5 ]

27 голосов
/ 11 октября 2012

Kaminari Роки, если вы используете рельсы 3+, мне нравится использовать его, потому что

  1. Это новейшая библиотека и мощно поддерживает рельсы 3+.
  2. 'Kaminari' прост в использовании и очень легко поддерживает ajax.
  3. Paginate pure Object way.
  4. Работает в качестве прокси на AREL, без указанияМетод paginate перегружен в ActiveRecord
  5. Не загрязняет объект Array или Hash
  6. Более стандартная поддержка рельсов для других форматов просмотра, самый важный мобильный

    User.page(7).per(50)
    

    Но если вы используете рельсы 2.3 и т. Д., Придерживайтесь will_paginate , который также работает с рельсами 3+, но внутренне он не так совершенен, как код Каминари.

19 голосов
/ 18 ноября 2011

Мне очень нравится Каминари.Я не знаю, будет ли это делать will_paginate, но Kaminari также может разбивать на страницы любой обычный старый Array:

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

. Для обоих есть Railscasts , которые я рекомендую посмотреть.

14 голосов
/ 18 ноября 2011

смотреть kaminari railscast и затем смотреть будет разбивать Railscast

Райан Бейтс в комментариях советует, что Kaminari более интенсивно использует партиалы, что может сделать его немного медленнее, но не намного

1 голос
/ 11 февраля 2014

Хотя will_paginate выполняет свою работу довольно быстро, Kaminari также позволяет вам быстро редактировать вывод HTML для разбивки на страницы.

Для меня это было здорово, так как я использую Bootstrap 3 и хотел использовать по умолчаниюстили нумерации страниц.

Для will_paginate есть драгоценный камень, который позволяет вам делать то же самое, но Kaminari гораздо более гибок

1 голос
/ 15 марта 2013

Я использовал оба драгоценных камня, и, честно говоря, мне больше нравится Каминари.Это так просто в использовании.Я не видел проблем с производительностью или средой (мое приложение работает на Heroku).

...