kaminariを使ってみた
Rails3からページネイトにはkaminariを使うのが
いいみたいなので、試してみました。
Railsでページネイト(モデルのページ分け)をするには
1.2の頃はRails謹製のpaginate、
2.xの頃はwill_paginateなどのプラグインを使うのが普通でした。
3.xになって、kaminariを使うのが一般的なわけです。
まず、Gemfileに
gem "kaminari"
を書いてから、bundle installして、
gemをインストールします。
def index @blogs = Blog.all respond_to do |format| format.html # index.html.erb format.json { render json: @blogs } end end
こんな感じで、allで一括呼び出ししている部分を
def index @blogs = Blog.page(params[:page]) respond_to do |format| format.html # index.html.erb format.json { render json: @blogs } end end
とやります。
すると、ビューには25件区切りで表示されます。
25件を変更するには、
@blogs = Blog.page(params[:page]).per(15)
とやります。
ビューは
<%= paginate @blogs%>
と書いておくと、
の部分を作り出せます。
このラベルを変えたい時は、
config/locales/en.yml に
en: views: pagination: first: "« FIRST" last: "LAST »" previous: "‹ PREV" next: "NEXT ›" truncate: "..."
と言った感じに書くと、変更されます。
will_paginateなどと違ってビューにレンダリング
するときにラベルの変更を渡すんじゃなくて、
localeで一括管理しているところがスマートですね。
全部大文字にしてみました。
使ってみた感じ、will_paginateよりも使いやすくなって
機能も増えていますね。