プログラミングマガジン

プログラミングを中心に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. 2021 02.07

    【Rails】「devise」のテストコードの書き方や用意すると良いテストケース

  2. 2019 11.23

    【Ruby on Rails】アプリケーションサーバ「Puma」、「Unicorn」について

  3. 2020 12.19

    【Ruby on Rails】モデルの基本、データ型、scope、メソッド(クラス、インスタンス)の違い、委譲

  4. 2019 12.09

    【Ruby on Rails】「コントローラ」の共通化

  5. 2018 06.19

    【Ruby on Rails】ビューテンプレート(ERB)の記述ルール

  6. 2019 12.01

    【Rspec】基本的な書き方、タグなど

  • コメント ( 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 ©  プログラミングマガジン | プライバシーポリシー