Posted at

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


はじめに


ページネーションとは

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なのか気になります。

わかったらまた追記したいと思います。