Kaminari で超お手軽にページネートを実装する。
Kaminari を使うと超簡単にページネートが実装できる。
sudo gem install kaminari
Gemfile で gem 'kaminari' を指定して bundle install する。
あとはコントローラーで Model.all の代わりに .scoped メソッドを利用する。ページ数はモデルで指定しても良いのだけど面倒なので一気に指定。
@records = Record.scoped(:include => [:related_table_1, :related_table_2], :order => "created_at DESC").page(params[:page]).per(15)
ビューは Haml で書くとこんな感じ。たったこれだけでページネートを実装できる。
= paginate @records, :window => 4, :outer_window => 1
Rails + Bootstrap なアプリの場合は class 名称などを調整する必要があるが、これも出来合いのモノがすでに存在する。以下を git clone してアプリのビューに配置するだけで良い。
https://github.com/gabetax/twitter-bootstrap-kaminari-views
ページネートを日本語化したければ config/locales/ja.yml などで以下のように指定する。
ja: views: pagination: previous: "<< 前ページ" next: "次ページ >>" first: "最初" last: "最後" truncate: ""