カテゴリ: Rails 更新日: 2025/12/23

Railsのdefaultsを使いこなそう!locale・format・ページング初期値をルーティングで設定する方法

defaults の使い方:locale・format・ページング初期値を設定する
defaults の使い方:locale・format・ページング初期値を設定する

先生と生徒の会話形式で理解しよう

生徒

「Railsのルーティングで、defaultsっていうのを見かけました。これは何に使うんですか?」

先生

「defaultsは、ルーティングに初期値を指定するための機能だよ。たとえば、言語(locale)やデータの形式(format)、ページ数なんかを決めておけるんだ。」

生徒

「初期値ってことは、何も指定しなかったときに自動で使われるってことですか?」

先生

「その通り!じゃあ、defaultsの基本的な使い方から順番に見ていこうか。」

1. defaultsとは?

1. defaultsとは?
1. defaultsとは?

defaults(デフォルツ)とは、Ruby on Railsのルーティングで パラメータの初期値をあらかじめ決めておくための仕組みです。 URLに値が書かれていない場合でも、Rails側で「この値を使う」と自動的に補ってくれます。

たとえば、言語を表すlocale、レスポンス形式のformat、 ページ番号を表すpageなどは、毎回URLに書かなくても 初期値が決まっていれば同じ動きをしてくれます。 これにより、URLが長くなりすぎるのを防げます。


# defaultsを使ったシンプルな例
get '/sample', to: 'samples#index', defaults: { page: 1 }

上の例では、/sampleにアクセスしたとき、 URLに?page=1と書かれていなくても、 params[:page]には自動的に1が入ります。 「指定がなければこの値」という考え方なので、初心者でも理解しやすいのが特徴です。

defaultsを使うことで、動作のブレを防ぎつつ、読みやすいURL設計ができるようになります。 まずは「ルーティングで初期値を決められる仕組み」と覚えておくと十分です。

2. locale(言語)の初期値を設定する

2. locale(言語)の初期値を設定する
2. locale(言語)の初期値を設定する

多言語対応しているRailsアプリケーションでは、 どの言語で画面を表示するか(locale)を切り替える仕組みがよく使われます。 URLに言語情報を含める方法もありますが、毎回指定するのは少し手間になります。

そこで役立つのがdefaultsです。 あらかじめ初期の言語を決めておけば、URLに何も書かれていなくても、 Railsが自動的にその言語を使って画面を表示してくれます。


# 日本語を初期言語に設定する例
get '/about', to: 'pages#about', defaults: { locale: 'ja' }

この設定では、/aboutにアクセスした時点で params[:locale]にはjaが入ります。 そのため、URLに?locale=jaを付けなくても、 最初から日本語表示になるのがポイントです。

「特に指定がなければ日本語にしたい」といったケースでは、 defaultsを使うだけでシンプルに実現できます。 初心者の方は「言語の初期設定をルーティングで決められる」と覚えておくと理解しやすいでしょう。

3. format(形式)をJSONなどに固定する

3. format(形式)をJSONなどに固定する
3. format(形式)をJSONなどに固定する

formatとは、Railsがどの形式でデータを返すかを決めるためのパラメータです。 普段ブラウザで見る画面はHTML形式ですが、APIとして使う場合はJSON形式がよく利用されます。 formatを意識することで、「人が見る画面」か「プログラムが使うデータ」かを明確に分けられます。

API専用のURLを作る場合、毎回.jsonを付けるのは少し面倒です。 そこでdefaultsを使えば、URLがシンプルなまま、 最初からJSON形式で返すルートを作ることができます。


# JSON形式で返すAPI用ルートの例
get '/users/:id', to: 'users#show', defaults: { format: 'json' }

この設定をしておくと、/users/1のようにアクセスするだけで、 Railsは自動的に「JSONで返すルートだ」と判断します。 URLに.jsonを付けなくても良いため、APIのURLがすっきりします。

初心者の方は、「formatは返すデータの形を決めるもの」と考えると分かりやすいでしょう。 defaultsで形式を固定しておくと、API用ルーティングを安全かつ分かりやすく整理できます。

4. ページング(pagination)の初期ページを設定する

4. ページング(pagination)の初期ページを設定する
4. ページング(pagination)の初期ページを設定する

ページング(pagination)とは、たくさんのデータを一度に表示せず、 複数のページに分けて見せるための仕組みです。 商品一覧や記事一覧など、件数が多くなりがちな画面でよく使われます。

その際、「最初にどのページを表示するか」を決めておかないと、 params[:page]が空になり、処理が分かりにくくなることがあります。 そこでdefaultsを使って、初期ページをあらかじめ指定しておくと便利です。


# 一覧ページの初期ページを1に設定する例
get '/products', to: 'products#index', defaults: { page: 1 }

この設定をしておくと、/productsにアクセスした時点で params[:page]には自動的に1が入ります。 URLに?page=1を付けなくても、常に1ページ目として扱われるのがポイントです。

初心者の方は、「ページ番号が省略されたら1ページ目にする」と考えると分かりやすいでしょう。 defaultsを使えば、ページング処理を安定して書けるようになります。

5. namespaceやscopeと組み合わせて使う

5. namespaceやscopeと組み合わせて使う
5. namespaceやscopeと組み合わせて使う

defaultsは、個別のルートだけでなく、namespaceやscopeといったグループ全体にも適用できます。


namespace :admin, defaults: { locale: 'ja', format: 'html' } do
  resources :users
end

このようにすると、/admin/usersにアクセスしたとき、初期状態で日本語のHTMLページが表示されるようになります。

全体に共通の設定を適用したいときにとても便利です。

6. defaultsを使うときの注意点

6. defaultsを使うときの注意点
6. defaultsを使うときの注意点

便利なdefaultsですが、注意すべきポイントもあります。

  • 明示的なパラメータ(URLに付いている値)があれば、そちらが優先されます
  • 複数のdefaultsを指定するときは、ハッシュ形式でまとめます
  • 誤った初期値を入れると、正しくルーティングされなくなる可能性があります

特にformatは、コントローラ側でrespond_toが適切に書かれている必要があるので、合わせて確認しましょう。

7. よく使うdefaultsのパターン一覧

7. よく使うdefaultsのパターン一覧
7. よく使うdefaultsのパターン一覧

ここでは、Railsのルーティングでよく使われるdefaultsのパターンを表にまとめてみました。

使用例 意味
defaults: { locale: 'ja' } 日本語を初期言語に設定
defaults: { format: 'json' } レスポンスをJSON形式に
defaults: { page: 1 } ページングの初期ページを1に
defaults: { sort: 'new' } 並び順を「新着」に初期化

このようにdefaultsを活用することで、URLがシンプルになり、意図した動作を安定して実現できます

関連記事:
カテゴリの一覧へ
新着記事
New1
データベース
SQLの処理が遅くなる原因とは?初心者向けにデータベースパフォーマンス最適化を完全解説
New2
Ruby
RubyのネストHash操作を徹底解説!digとtransformメソッドで複雑なデータも楽々
New3
Rails
Railsインデックス設計の極意!爆速サイトを作るためのスキーマ設計ガイド
New4
データベース
SQLのCOMMITとROLLBACKとは?トランザクション操作を初心者向けに完全解説
人気記事
No.1
Java&Spring記事人気No1
Ruby
PATHと環境変数の正しい設定!Windows・Mac・Linux別チェックリスト付き
No.2
Java&Spring記事人気No2
Rails
Railsで日本語と時刻の設定をしよう!初心者でも安心のlocale/zone初期設定チートシート
No.3
Java&Spring記事人気No3
Ruby
Rubyのハッシュを徹底比較!シンボルキーと文字列キーの違いと使い分け
No.4
Java&Spring記事人気No4
Rails
Railsマイグレーションの型選びを完全ガイド!初心者が迷わないカラム設計
No.5
Java&Spring記事人気No5
Ruby
WindowsでRubyをインストールする方法!RubyInstallerとMSYS2を使った完全ガイド
No.6
Java&Spring記事人気No6
Rails
RailsモデルとActive Record基礎|ID戦略を完全理解!AUTO INCREMENT・UUID・ULIDの比較と導入手順
No.7
Java&Spring記事人気No7
データベース
ACID特性とは?データベーストランザクションの信頼性を初心者向けに徹底解説
No.8
Java&Spring記事人気No8
Rails
RailsモデルとActive Record基礎|クエリログの読み方を理解してEXPLAIN・joins・includesの違いを学ぼう