web-dev-qa-db-ja.com

Rails 3ページネーション、will_paginate対Kaminari

私の設定:Rails 3.0.9、Ruby 1.9.2

アプリのページネーションソリューションを調べたところ、信頼できるwill_paginateと比較して、新着の宝石Kaminariがあることがわかりました。 will_paginateはしばらく更新されていないようですが、V3.0に戻ってきました。コンセンサスとは何ですか。一方が他方よりも優先されますが、その理由は何ですか。あなたの洞察を事前に感謝します。

[〜#〜]編集[〜#〜]

ツイッターでライアン・ベイツに聞いたところ、

どちらも同じようにうまく機能します。最大の要因は、互換性がないためページ付けが必要な宝石を使用する場合です。 will_paginateの非エンジンアプローチはもう少し好きですが、それは個人的な好みです。

42
Bob

Kaminari Rocks Rails 3+を使用している場合、私はそれを使用したいので、

  1. 最新のライブラリであり、Rails 3+を強力にサポートします。
  2. 「Kaminari」は使いやすく、ajaxを非常に簡単にサポートします。
  3. 純粋なObjectでページ分割します。
  4. ARELでプロキシとして機能し、ActiveRecordでオーバーロードされる特定のpaginateメソッドはありません
  5. ArrayまたはHashオブジェクトを汚染しません
  6. より標準的なRails他のビュー形式のサポート、最も重要なモバイル

    User.page(7).per(50)
    

    ただし、Rails 2.3などを使用している場合は、 will_paginate を使用してください。これはRails 3 +でも機能しますが、内部的にはそうではありません。カミナリコードのように完璧です。

27

私は雷鳴が本当に好きです。 will_paginateがこれを行うかどうかはわかりませんが、Kaminariは通常の古いArrayにもページ番号を付けることができます。

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

両方に Railscasts があります。

19
clem

kaminari railscast を見てから、 railscast にページ番号を付けてください

ライアンベイツはコメントでカミナリがパーシャルをより頻繁に使用することを助言します、それはそれを部分的に遅くするかもしれませんが、それほどではないかもしれません

14
stephenmurdoch

Will_paginateは非常に迅速に処理を行いますが、Kaminariを使用すると、ページネーションHTML出力をすばやく編集することもできます。

Bootstrap 3を使用しており、デフォルトのページネーションスタイルを使用したかったので、これは私にとって素晴らしいことでした。

同じことを可能にするwill_paginateの宝石がありますが、Kaminariははるかに柔軟性があります

1
pastullo

私は両方の宝石を使用しており、率直に言って、私は神成の方が好きです。とても使いやすいです。パフォーマンスの問題や環境の問題を見たことはありません(私のアプリはHerokuで動作しています)。

1
Yosep Kim