D.

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: ""

こんな感じに Bootstrap らしいページネートが実装される。