「kaminari」とは、ruby の gemの一つでページネーションを実装するものです。
今回は以下の赤枠のようなページネーションを実装するイメージです。
gem でインストール
「Gemfile」の一番下に「gem 'kaminari'」を追加します。
# ページネーション gem 'kaminari'
ターミナルで「bundle install」を実行します。
kaminariの設定ファイル生成
kaminariの設定ファイルを生成します。
$ bundle exec rails g kaminari:config Running via Spring preloader in process 49 create config/initializers/kaminari_config.rb
kaminariのViewファイル生成
kaminariのViewファイルを生成します。
bundle exec rails g kaminari:views bootstrap4 downloading app/views/kaminari/_first_page.html.erb from kaminari_themes... create app/views/kaminari/_first_page.html.erb downloading app/views/kaminari/_gap.html.erb from kaminari_themes... create app/views/kaminari/_gap.html.erb downloading app/views/kaminari/_last_page.html.erb from kaminari_themes... create app/views/kaminari/_last_page.html.erb downloading app/views/kaminari/_next_page.html.erb from kaminari_themes... create app/views/kaminari/_next_page.html.erb downloading app/views/kaminari/_page.html.erb from kaminari_themes... create app/views/kaminari/_page.html.erb downloading app/views/kaminari/_paginator.html.erb from kaminari_themes... create app/views/kaminari/_paginator.html.erb downloading app/views/kaminari/_prev_page.html.erb from kaminari_themes... create app/views/kaminari/_prev_page.html.erb
ページネーション定義
コントローラは以下のように定義します。
def index @users = User.page(params[:page]).per(10) end
ビューファイルでページネーションを表示する部分は以下のように定義します。
<%= paginate @users %>