ページネーション機能を提供するkaminariライブラリの使い方について。
テストテーブル:hoge
100件くらいデータを入れておく。
カラム | 型 |
---|---|
name | text |
sex | integer |
kaminariのインストール
プロジェクトフォルダ/Gemfileに以下を追記し保存。
gem 'kaminari'
コマンドプロンプトから以下を実行
> bundle install
設定ファイルを作成
> rails generate kaminari:config
設定ファイル(kaminari_config.rb)の中身
項目 | 概要 |
---|---|
default_per_page | 1ページあたりの表示件数 |
max_per_page | 1ページあたりの最大表示件数 |
window | 現在のページから左右何ページ分を表示するか |
outer_window | 先頭、最終ページから何ページ分のリンクを表示するか (left/rightの値が優先される) |
left | 先頭ページから何ページ分のリンクを表示するか |
right | 最終ページから何ページ分のリンクを表示するか |
page_method_name | nページ目のレコードを取得するメソッド名 |
param_name | ページ番号のパラメータ名 |
Railsサーバ再起動
config内のファイルは起動時に読み込まれるため。
> rails restart
コントローラ
controllers/hoges_controller.rb
def index
# 全データを取得する
# @datas = Hoge.All
# 指定ページのデータのみ取得する
@datas = Hoge.page params[:page]
end
テンプレート
views/hoges/index.html.erb
<div><%= page_entries_info @datas %></div>
<% @datas.each do |data| %>
<div>
<%= data.id %>
<%= data.name %>
<%= data.sex == 0 ? '女' : '男' %>
</div>
<% end %>
<div><%= pagenate @datas %></div>
page_entries_info
で、表示しているページの情報(データ総数、表示中のデータ範囲)を出力する。
pagenate
で、ページ移動のためのリンクを出力。