LoginSignup
1
1

More than 1 year has passed since last update.

kaminariでページネーション

Posted at

Kaminariでページネーション機能を作成

まずは、gemをインストールする

gem 'kaminari', '~> 1.2.0'

このgemを追加することによって、以下のメソッドを使用できるようになる。

メソッド 説明
pageメソッド 引数に現在のページ数を渡す
perメソッド 引数に何件でページを分割するかを渡す

まずコントローラーでページネーションをつけたいデータに
.page(params[:page])
を追加する。

app/controllers/users_controller.rb
def index
  @posts = Post.all.page(params[:page])
  #デフォルトでは25件なので、例えば10件ずつにしたい場合
 @posts = Post.all.page(params[:page]).per(10)
end

次に、ビューでページネーションを表示させたい箇所に
<%= paginate @posts %>
を追加する。

app/views/posts/index.html.erb
<h1>投稿一覧</h1>

<ul>
  <% @posts.each do |post| %>
    <li><%= post.content %></li>
  <% end %>
</ul>

<%= paginate @posts %>

日本語化に対応

config/application.rbのmoduleにconfig.i18n.default_locale = :ja

config/application.rb

module MyAppName
  class Application < Rails::Application
    # Settings in config/environments/* take precedence over those specified here.
    # Application configuration should go into files in config/initializers
    # -- all .rb files in that directory are automatically loaded.
   
    config.i18n.default_locale = :ja  ⇦ここを追加
  end
end

こちらの記事から引用させていただきました。
以下はより詳細な設定が書かれています。
https://qiita.com/rio_threehouse/items/313824b90a31268b0074

1
1
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
1
1