はじめに
現在ポートフォリオ制作中の初学者です。
kaminariを導入してページネーション機能を実装したので備忘録です。
1. gemをインストール
Gemfile
gem 'kaminari'
ターミナル
% bundle install
2. コントローラーで定義
events_controller.rb
def index
@events = Event.page(params[:page]).per(10)
end
pageとperいうメソッドがkaminariで定義されたメソッドです。
perメソッドの引数にどれだけのレコードが表示されたらページを増やすかを指定できます。
3. ビューファイルを編集
events/index.html.erb
<%= paginate @events %>
表示したいビューファイルに記述。
以上です!
ページネーションの見た目を変える
kaminariで表示させるページネーションはビューの中でcssを当てる事は出来ない。
ので以下方法。
ターミナル
% rails g kaminari:views default
app/viewsフォルダにkaminariを追加。
フォルダの中にページネーションの部分のhtmlが記述されているので、そこで変更する。
cssのフレームワークのデザインを適用させる場合
bootstrapなどのcssのフレームワークを使っている場合、表示やデザインが崩れる場合があるので
defaultの部分をそれぞれのフレームワークの名前に指定する。
bootstrap4を使っている場合は下記のコマンド。
ターミナル
% rails g kaminari:views bootstrap4
このコマンドを実行し、ビューファイルを作成すると何も編集しなくてもそれぞれのフレームワークのスタイルに最適化される。
kaminariを日本語化する
デフォルトで英語表記になっているため、日本語表記に変更するためには
config/localesフォルダにkaminari_ja.ymlというファイルを作成し、下記のようなコードを書く。
config/locales/kaminari_ja.yml
ja:
views:
pagination:
first: "« 最初"
last: "最後 »"
previous: "‹ 前"
next: "次 ›"
truncate: "..."