LoginSignup
4
7

More than 3 years have passed since last update.

rails ページネーションの使い方

Posted at

はじめに

ページネーションとは

1ページに表示する情報が多いときに、分割して複数のページを作成しアクセスをしやすくすることです。

Googleで検索したとき、検索結果が多いと複数のページに渡って検索結果があると思うのですが、あれがページネーションになります。ページ下のGoooooooooogleってなってるやつです。

実装方法

kaminari

Gemの一種である「kaminari」をインストールすることで、ページネーションを簡単に実装できます。

kaminariのインストール

以下のように、Gemfileにkaminariを記述し、ターミナルでbundle installを実行します。

Gemfile
gem 'kaminari'
$ bundle install

これでページネーションを実装するためのメソッドを使用できるようになります。

ファイルの編集

ページネーションを実装するにはコントローラーファイル、ビューファイルを編集する必要があります。

編集の例としては以下のようになります。

コントローラーファイル編集例
class TweetsController < ApplicationController
  def index
   @tweets = Tweet.all.page(params[:page]).per(5)
  end
end

ここでページネーションのために使用するメソッドはpageメソッドとperメソッドになります。

perメソッド

perメソッドの引数には1ページに表示したい要素の数を持たせます。つまり1ページに表示する検索結果を決めることができる。

pageメソッド

kaminariをインストールすることでparamsにpageのキーが追加されます。そのためpageメソッドの引数にparams[:page]を持たせることで現在のページ番号を指定できます。

ビューファイル編集例
 <%= paginate(@tweets) %>

ビューファイルには以上の記述をすることで記述をした場所にページネーションのリンクを表示させることができます。

おわりに

ページネーションが使えるようになるとサイト作ってるなぁって感じがします笑

なんでGemの名前がkaminariなのか気になります。
わかったらまた追記したいと思います。

4
7
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
7