will_paginateの1ページあたりの表示数とラベルを変更する
ページネーションをうまいことやりたいとき、railsだとどうやらkaminari
ってのが有名らしい。
しかしrailsのチュートリアルで、will_paginate
を使っていたので、それを活用していきます。
参考までにkaminari github.com
そして今回のwill_paginate github.com
余談ですけど、kaminariとかnokogiriとか4文字の日本語をローマ字にしましたみたいなgemってなんか良いですよね。
僕も将来onigiriってgem作りたいなと構想しています。
1ページに表示するitemの数を指定する
Post.paginate(:page => params[:page], :per_page => 30)
と、:per_page => 30
のようにオプションを付ければできます。
まとめてdefaultの設定もできるようですが、部分ごとに表示させたい数が違ったので、今回は使いませんでした。
# for the Post model class Post self.per_page = 10 end # set per_page globally WillPaginate.per_page = 10
labelを変更する
個別にも設定できるみたいなんですが、1ページあたりの表示数と違って、これはサイト全体で統一するパターンが多いと思うので、一括で設定をしたいところです。
config/application.rb
にて
config.i18n.default_locale = :ja
で、日本語に設定して、config/locals/ja.yml
で
ja: will_paginate: previous_label: "前" next_label: "次" page_gap: "…"
を設定。