[Ruby on Rails] ページネーションの作り方

pexels-photo-704767.jpeg
  • URLをコピーしました!

Railsでユーザーや記事等を単位ごとに表示するページネーションの作り方を紹介します。

ページネーション
目次

1. 必要なgemのインストール

will_pagenateとbootstrap-will_pagenateをインストールします。ページネーションのメインはwill_pagenateですが、bootstrap-will_pagenateをbootstrap-sassと一緒に入れると見た目が良くなるらしい。bootstrap-will_pagenateのGithub見たけど、サポート終了してるっぽい?のは気になりました。

Gemfileに以下の通り記載し、bundle installを実行します。

gem 'will_paginate',           '3.1.8'
gem 'bootstrap-will_paginate', '1.0.0'

2. ページネーションしたいビューに記載

ページネーションしたいビューに<%= will_paginate %>を記載します。ページの上下に1つずつ配置したい場合は、2ヶ所に記載します。

<% provide(:title, 'All users') %>
<h1>All users</h1>

<%= will_paginate %>

<ul class="users">
  <% @users.each do |user| %>
    <li>
      <%= gravatar_for user, size: 50 %>
      <%= link_to user.name, user %>
    </li>
  <% end %>
</ul>

<%= will_paginate %>

3. コントローラーに記載

ページネーション無しでユーザー等を一覧表示する場合は、コントローラーのindexアクションにUser.allというように書きます。

def index
    @users = User.all
end

ページネーションを導入する場合はUser.pagenate(page: params[:page])という内容を記載します。

def index
    @users = User.paginate(page: params[:page])
end
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

情報工学の修士号を取得後、新卒で大手メーカーに就職。2022年にWeb系企業に転職。
役立つサービスや日々思ったことを発信中。
趣味は旅行、カメラ、動画制作。

コメント

コメントする

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

目次