#目的
ポートフォリオ制作にあたり、少しでも機能数を増やしたく、今回はユーザー一覧に対し、ページネーション機能を追加しました。
ページネーションとは、件数を指定して、1ページに全て表示するのではなく、複数のページに表示するものです。これがないと、1ページに大量のデータが表示されてしまいます。
gemを使うことで、簡単に実装することができました。
#手順
Gemfileの一番下に、下記を追記します。
Gemfile
gem 'kaminari'
ターミナルにて、下記実行します。
ターミナル
$ bundle install
下記、.page
移行を追記します。
5件ずつ表示したい場合は、.per(5)
とします。
users_controller.rb
@users = User.where.not(name: "ゲストプレイヤー").where.not(id: current_user.id).page(params[:page]).per(5)
.each
文の後に、<%= paginate @users %>
を追記します。
/users/index.html.erb
<% @users.each do |user| %>
<%= link_to user.name, user_path(id: user.id) %><br>
<% end %>
<%= paginate @users %>
#Railsサーバーを再起動する
多分、再起動しないとうまく表示されないと思います。私の場合は、サーバー再起動だけでは表示せず、ブラウザのキャッシュも一度削除したら、表示しました。
#参考にしたページ
https://qiita.com/residenti/items/1ae1e5ceb59c0729c0b9