kaminariとは
ページネーションの実装を簡略化するためのgem。
ページネーションとは
長くなってしまったWebページを分割するもの。
ページ数の書かれたリンク。
実装手順
gemをインストールし、gコマンドでconfig/initializersディレクトリに生成。
# gemfile
gem 'kaminari'
# ターミナル
bundle install
rails g kaminari:config
1ページあたりに表示するレコード数(表示される項目の数)を指定する。
(下記コードではレコード数100)
config/initializers/kaminari_config.rb
# レコード数を10に指定
Kaminari.configure do |config|
config.default_per_page = 10
end
indexアクション内で一覧取得、pageスコープを使用
hoge.controller.rb
def index
@hoges = Hoge.all.includes(:user).order(created_at: :desc).page(params[:page])
end
一覧表示でページネーションを表示させるために、paginateヘルパーを使用する__
views/index.html.erb
<%= paginate @hoges %>
代表的なメソッド
-
paginate
paginateヘルパーを使うと複数のページネーションリンクを表示できる -
page
ページ数を指定するメソッド。
kaminariを導入したことにより、リクエストの際paramsの中にキーであるpageが追加されている。その値がビューで指定したページ番号となり、pageの引数は(params[:page])となる。 -
per
1ページあたりに表示する件数を指定できる。
perメソッドに引数として渡した数値が、1ページに表示するレコード件数となる。