プログラミングマガジン

プログラミングを中心にIT技術をできるだけわかりやすくまとめます。

  • ホーム
  • Ruby on Rails
  • 【Ruby on Rails】「ページング」の実装(kaminari)
 
 
     
  • サーバー言語  
    • Python
    • Ruby
    • PHP
    • SQL
  •  
  • インフラ  
       
    • AWS
    •  
    • 基本
    • Git
  • Web
       
    • Web開発
    • JavaScript
    • Vue.js
    • React
  •  
  • 設計  
       
    • 実装設計
    • DB設計
  • 問い合わせ
  

【Ruby on Rails】「ページング」の実装(kaminari)

12.07

  • miyabisan2
  • コメントを書く

この記事は2分で読めます

Railsでページングを実装する場合はkaminariというgemが最も有名です。

kaminariのインストール

Gemfileに下記の記述を追記します。

1
gem 'kaminari'

bundleします。

1
bundle

ページングの実装

コントローラー側

pageスコープ

ページ番号は「params[:page]」で画面から渡されてきます。

1
検索結果の変数.page(params[:params])

kaminariが提供しているpageというスコープを使うと簡単に画面から送られてきたデータ範囲のデータを抽出することが可能です。

perスコープ

1
検索結果変数.per(表示件数)

引数で指定した表示件数分の検索結果だけが返されます。

ビュー側

paginateビューヘルパー

「現在どのページを表示しているかの情報」と「他のページに移動するためのリンク」機能を提供してくれます。

erbを使用している場合は下記のように記述します。

1
<%= paginate 一覧表示対象のオブジェクトのリスト(例:@users) %>

page_entries_infoビューヘルパー

「全データが何件なのか」という情報を持っています。

日本語化

kaminariはデフォルトで英語になっているので日本語化しましょう。

config/application.rb

前提として下記の記述を追加されている必要があります。

1
2
3
4
5
6
7
8
module App
  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

config/locales/ja.ymlというファイルを作成してkaminari専用の翻訳ファイルを作成しましょう。内容は下記のような内容にしましょう。

1
2
3
4
5
6
7
8
ja:
  views:
    pagination:
      first: '最初'
      last: '最後'
      previous: '前'
      next: '次'
      truncate: '...'

ページ全体の表示件数の設定

モデル別のデフォルトの1ページあたりの表示件数を設定したい場合は下記のように記述します。

モデル別の設定(app/models/モデル名.rb)

1
paginates_per 1ページあたりの表示件数

全体設定

また、全体の1ページあたりの表示件数を変えたい場合は下記コマンドを実行します。

1
rails g kaminari:config

「config/initializers/kaminari_config.rb」にファイルが生成されているのでそこに下記設定を追記します。

1
config.default_per_page = 1ページあたりの表示件数

デザインの調整

kaminariはデフォルトでは味気ないデザインになっています。paginateビューヘルパーはいくつかの「パーシャルテンプレート」というテンプレートを持っているので選択しましょう。

例えば、「bootstrap」のパーシャルテンプレートを使用する場合は下記のコマンドを実行します。

1
rails g kaminari:views bootstrap4

下記のようにかっこいいデザインになります。

スポンサーリンク
  • 2019 12.07
  • miyabisan2
  • コメントを書く
  • Ruby on Rails
  • Tweets Twitter
  • このエントリーをはてなブックマークに追加
  • LINEで送る

関連記事

  1. 2020 11.29

    【Ruby on Rails】「ActiveModel」、「フォームオブジェクト」、「EachValidator」、「単一テーブル継承(STI)」

  2. 2020 01.06

    【Ruby on Rails】「devise」、「devise_invitable」について

  3. 2021 02.06

    【Rails】「find_or_initialize_by」や「find_or_create_by」について

  4. 2019 12.24

    【Ruby on Rails】「rake」について

  5. 2019 12.03

    【Ruby on Rails】アセットパイプラインについて

  6. 2019 12.14

    【VSCode】Railsのデバッグ設定(Mac)

  • コメント ( 0 )
  • トラックバック ( 0 )
  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

返信をキャンセルする。

【Web開発】「ページング機能」の設計

【Ruby on Rails】「Active Job」…

RETURN TOP

著者プロフィール

エンジニア歴10年で過去に業務系、Webデザイン、インフラ系なども経験あります。現在はWeb系でフロントエンド開発中心です。

詳細なプロフィールはこちら

スポンサーリンク

カテゴリー

  • Android
  • AngularJS
  • API
  • AWS
  • C++
  • CSS
  • cursor
  • C言語
  • DDD
  • DevOps
  • Django
  • Docker
  • Figma
  • Git
  • GitLab
  • GraphQL
  • gRPC
  • Hasura
  • Java
  • JavaScript
  • Kubernetes
  • Laravel
  • linux
  • MySQL
  • Next.js
  • nginx
  • Node.js
  • NoSQL
  • Nuxt.js
  • Oracle
  • PHP
  • Python
  • React
  • Redux
  • Rspec
  • Ruby
  • Ruby on Rails
  • Sass
  • Spring Framework
  • SQL
  • TypeScript
  • Unity
  • Vue.js
  • Webサービス開発
  • Webデザイン
  • Web技術
  • インフラ
  • オブジェクト指向
  • システム開発
  • セキュリティ
  • その他
  • データベース
  • デザインパターン
  • テスト
  • ネットワーク
  • プログラミング全般
  • マイクロサービス
  • マイクロソフト系技術
  • マルチメディア
  • リファクタリング
  • 副業
  • 未分類
  • 業務知識
  • 生成AI
  • 設計
  • 関数型言語
RETURN TOP

Copyright ©  プログラミングマガジン | プライバシーポリシー