2 flat logo on transparent 256
2018-02-25

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

32131

indexアクションを利用していると、ページを分割して表示したい事がでると思います。その際に、Ruby On RailsのGem will_paginateを利用すれば簡単にindexのページを分割して表示することができます。

なお、ブログなどでよくある、前後の記事のレコードを表示する場合は、【初心者・独学者向け】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])

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

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

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

ページへ表示する

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

<%= will_paginate @articles %>

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

undefined method paginate

その他の関連記事

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

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

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

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

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

前の記事
次の記事