今回は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
を呼び出すのは手間の為、以下のいずれかの方法で指定することが多い。
https://github.com/kaminari/kaminari#general-configuration-optionsの
default_per_page
https://github.com/kaminari/kaminari#configuring-default-per_page-value-for-each-model-by-paginates_per→ページネーションが必要なモデルに、Kaminariのメソッドを追加。
paginates_per
メソッドは、1ページに表示するレコード数を設定。
3.ビューでページネーションを表示
<%= paginate @books %>
4.kaminariの表記を日本語化
config/locales/ja.yml
に追記する。
まとめ
他にも「表示件数、ページ番号、ページあたりの表示件数など、様々なパラメータをカスタマイズできる」 「BootstrapなどのCSSフレームワークとの連携が容易にできる」ので、今後学習していきたいです!