paginateとkaminari

paginateってなんだ?

ページ下部にある123とかってやつ。これを実装するために、kaminariというgemをインストールする。

実装

gem 'kaminari'
$ bundle instal

これでkaminariを使えるようになった。どう実装するのか。

rails g kaminari:config

でkaminariのコンフィグを作る。そうすると、config/initializers/kaminari

# frozen_string_literal: true

Kaminari.configure do |config|
  # config.default_per_page = 25
  # config.max_per_page = nil
  # config.window = 4
  # config.outer_window = 0
  # config.left = 0
  # config.right = 0
  # config.page_method_name = :page
  # config.param_name = :page
  # config.max_pages = nil
  # config.params_on_first_page = false
end

とできるので、自由にいじる。

controllerに追加

ページネーションを追加したいアクションにpage(params[:page])を追加する。app/controller/boards

def index
  @boards = Board.all.page(params[:page])
end

として、表示したいview、今回はapp/views/boards/index.html.erb

<%= paginate @boards %>

と書き込むと、ページネーションが表示されるようになる。

ページネーションの見た目

見た目を変えるために

$ rails g kaminari:views bootstrap4

ってすると見た目が変わり、よきよきになる。

参考

https://www.autovice.jp/articles/139 https://qiita.com/rio_threehouse/items/313824b90a31268b0074