LoginSignup
0
0

More than 5 years have passed since last update.

kaminariでpaginationを実装

Posted at

pagination(ページネーション)とは?

例えば、Google検索をした時に一番下に出るページ番号のこと。
長いビューを複数のページに分割して、各ページへのリンクを並べて見やすくする。

kaminariでpaginationを実装!

kaminariとはrubyのgemの一種。

Gemgfileにkaminariを追加。

Gemfile
gem 'kaminari'

bundle installを実行。

ターミナル
$ bundle install

(ローカル)サーバーの再起動

ターミナル
$ rails s

コントローラーの編集

kaminariを導入後は、コントローラーを編集して、1ページあたりに表示したい件数を指定する

hoge_controller.rb
変数名 = クラスを利用して取得したレコードのインスタンス.page(params[:page]).per(1ページに表示したい件数)

例えば、

tweets_controller.rb
@tweets = Tweet.all.order('id DESC').page(params[:page]).per(5)

ビューの編集

コントローラーの編集後、ビューを編集してページネーションのリンクを作成する。

リンクを作成したい場所に、

hoge.html.erb
<%= paginate(@tweets) %>

を記述する。例えば、

index.html.erb
<div class="contents row" >
  <% @tweets.each do |tweet| %>
    <div class="content_post" style="background-image: url(<%= tweet.image %>);">
      <%= simple_format(tweet.text) %>
      <span class="name"><%= tweet.name %></span>
    </div>
  <% end %>
  <%= paginate(@tweets) %>
</div>
0
0
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
0
0