Header
2018-02-25
2020-05-25

Ruby on Rails でページネーションを設定する

32131

indexページでは、ページを分割して表示したい事が出ると思います。

その際に、Ruby on RailsのGem will_paginateを利用すれば簡単にindexのページを分割して表示することができます。

railsのKaminariを利用して分割する方法もありますが、 今回はページネーション専用のgemを紹介します

なお、ブログなどでよくある、前後の記事のレコードを表示する場合は、【初心者・独学者向け】Ruby on RailsのModelを活用し前後のレコードを取得して次へ前へのリンクを設定するの記事をご参照下さい。

Ruby on Railsのgem will_paginateをインストールする

gem fileへ以下を追記しbundle install

gem 'will_paginate'

controllerでページネーションの設定を行う

モデル名.paginateでページネーションを行います。

  def index
    @articles = Article.paginate(:page => params[:page])
  end

1ページ毎の件数を指定する

1ページでページネーションを行う件数を指定する場合は :per_pageで件数を指定します。

  def index
    @articles = Article.paginate(page: params[:page], per_page: 20)
  end

ページへ表示する

ページネーションを表示したいviewで下記を設定し完了です

<%= will_paginate @articles %>

なお下記のようなエラーが発生する場合は、サーバを再起動すれば解決します。

undefined method paginate

その他の関連記事

チャットボット Hubot(ヒューボット)とSlackを連携してみる

Ruby on RailsでRedisを利用してランキング機能を実装する

Ruby on Railsとtwitterの投稿機能を連携する

Ruby on Railsで検索機能を実装する|ransack

Ruby on Railsの環境変数を管理できるGem dotenv-railsの紹介

Rubyの引数で使えるテクニック|キーワード引数

Ruby on Railsのデバッグツール byebugの紹介

あなたにお勧めの記事
前の記事
次の記事