Railsでkaminariを使う


プログラミングの勉強日記

2020年7月31日 Progate Lv.226

概要

 こちらの記事で扱ったgemのkaminariを説明する。kaminariは1つのページに掲載するコンテンツが増えたときに複数ページに分けて表示させるページネーションを簡単に実装することができる。


 ページネーションを使うことで、情報量の多いサイトをまとめられるということだけではなく、表示される項目が一定数を超えると自動的に次のページへ内容を移行することもできるので便利である。

使い方

 kaminariを使うためにGemfileを編集する。

Gemfile
gem 'kaminari'

 Gemfileを編集したら、kaminariをインストールする。

ターミナル
bundle install

 これでkaminariで定義されたメソッドや機能を使うことができるようになる。

ページネーションの定義

 コントローラとビューでページネーションが表示されるようにする。

controllerファイル
def index
  @users = User.page(params[:page]).per(10)
end
ビューファイル
<%# ページネーションの表示 %>
<%= paginate @users %>

見た目の変更

 kaminariで表示されるページネーションはビューの中でCSSを適用させることはできない。なので、見た目を変えたい場合はapp/view/kaminariフォルダを作り、その中にページネーションの部分のHTMLが記述されているようにターミナルで以下のコマンドを実行する。

ターミナル
$ rails g kaminari:views default

Bootstapに合わせる

 bootstrap用にカスタマイズすることもできる。このためにはもう一度Gemfileを変更する。

Gemfile
gem 'kaminari-bootstrap', '~> 3.0.1'

 Gemfileを編集したら、インストールする。

ターミナル
bundle install

 そして、config/config/locales/kaminari_ja.ymlを追加して編集する。

config/locales/kaminari_ja.yml
ja:
  views:
    pagination:
      first: "&laquo; 最初"
      last: "最後 &raquo;"
      previous: "&lsaquo; 前"
      next: " &rsaquo;"
      truncate: "..."