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