kaminari を使ってページング処理を実装

今回はRailsで、以下のようなページング処理(ページネーション)を実装するためにkaminari gemを使用しました。 kaminariはこの処理を簡単にしてくれるrails pluginです。

以下は作成済みの新規アプリケーションがあることが前提です。

学んだこと✏️

1.kaminari gemをインストール

Gemfileにgem 'kaminari'を追加し、インストール。

2.コントローラーでページングを処理
def index
    @books = Book.order(:id).page(params[:page])
end
  • ページングをつける際は、並び順が一意になるorderもしてする。 これがないと、並び順がある日突然変わったり、どのページを開いても特定のデータが表示されない、といった事故が発生する。

補足
@books = Book.order(:id).page(params[:page]).per(3)

上記でも動作するが、ページネーションを使うときに毎回perを呼び出すのは手間の為、以下のいずれかの方法で指定することが多い。

3.ビューでページネーションを表示
<%= paginate @books %>
4.kaminariの表記を日本語化

config/locales/ja.ymlに追記する。

I18n and Labels

まとめ

他にも「表示件数、ページ番号、ページあたりの表示件数など、様々なパラメータをカスタマイズできる」 「BootstrapなどのCSSフレームワークとの連携が容易にできる」ので、今後学習していきたいです!