🎉
RailsのKaminariについて‼️
Kaminarとは
Railsでページネーションを実装するためのGem
です。
⚫︎補足
ページネーションはウェブページなどで大量のコンテンツを複数のページに分割して表示するための技術です。
実装手順
Gem
Gemfileに以下のGemを導入してbundle installします。
gem 'kaminari'
kaminari_themes
kaminariのUIが変更
できます。
見た目を変更するためのkaminari_themesの適用方法は以下のコマンドです。
bootstrap4で適用するなら
rails g kaminari:views bootstrap4
簡単な使い方
以下の処理はArticleモデルから全ての記事を取得し、ページネーションを適用します。
# GET /articles
def index
@articles = Article.all.page params[:page]
end
.page(params[:page])
はページネーションを適用し、特定のページの記事のみを取得します。1ページあたりに表示するレコード数を20にするには以下の書き方をします。
# GET /articles
def index
@articles = Article.all.page params[:page].per(20)
end
Article.allで取得したデータを20件ずつページネーションされた状態で取得し、@articlesに格納され、viewで@articlesを表示すると、1ページあたり最大20件の記事が表示されます。
<h1>投稿する記事</h1>
<%= paginate @articles %>
みたいな感じです。
メソッド(page、per、paginate)
-
pageメソッド
pページ番号を指定してページネーションを行うためのもので、コントローラー内のアクションなどで使用されます。 -
perメソッド
1ページあたりの表示レコード数を指定するためのもので、よくpageメソッドと組み合わせて使用され、Article.page(params[:page]).per(20)のように使用されます。 -
paginateメソッド
viewでページネーションのためのページャーを表示するためのヘルパーメソッドです。
viewの中でpaginateメソッドを使用することで、自動的にページャーが生成されます。
ex)
<%= paginate @articles %>
ページネーションされた記事のリストとページャーが表示されます。
資料
Discussion