1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

kaminariを使ったページネーションの実装

Posted at

備忘録です!

##kaminariのインストール

まずは、kaminariをインストール

gem 'kaminari'

bundle installします。

##controllerの設定

def index
  @board = Board.all.includes(:user).order(created_at: :desc).page(params[:page])

・1ページあたりの表示件数は何件にするか(perメソッドを使用)
・何ページ目を表示させるのか(pageメソッドを使用)

これらをコントローラーで設定できます。

*今回は、別の専用ファイルで、perメソッドを設定していません。

ちなみに、kaminariは配列に対しても使用可能で、

def index
  @board = Board.all.includes(:user).order(created_at: :desc)
  @board = Kaminari.paginate_array(@board).page(params[:page]).per(20)
end

このように、paginata_arrayメソッドを用いれば、配列にも使用できる。

##viewの設定

<%= paginate @board %>

こちらを追加する。

##専用の設定ファイルの作成と設定

まずは、専用ファイルを作成する。

rails g kaminari:config

専用ファイルを用いて設定値を決める。

config/initializers/kaminari_config.rb
Kaminari.configure do |config|
  # config.default_per_page = 20      #1ページに表示される数
  # config.max_per_page = nil         #1ページの最大表示数
  # config.window = 4                 #現在のページの左右に表示する数
  # config.outer_window = 0
  # config.left = 0
  # config.right = 0
  # config.page_method_name = :page
  # config.param_name = :page
end

##bootstrapで実装

rails g kaminari:views ○○(ダウンロードしたいviewテンプレート)

とコマンドを打ち込むと、事前に用意されているテンプレートの中から、お好きな見た目を選択して使用することができますし、それらの編集も可能となります。

今回は、bootstrapのテンプレートを使用したいので、

rails g kaminari:views bootstrap4

とコマンドを打ち込むとテンプレートが生成されるので、特に変更を加えなくても、綺麗なページネーションを作成してくれる。

1
1
0

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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?