`page_routes`のルート定義をキーワード引数形式に統一

activeadmin/activeadmin

ActiveAdmin::Router#page_routesに残っていたハッシュ形式のルート呼び出しを、キーワード引数 to: 形式へ書き換えました。#8837で進めたルーティングコードの統一作業の仕上げです。

背景

#8837は、Rails 8.1が導入したキーワード引数の非推奨警告に対応するため、ActiveAdmin::Routerのルーティングコードを全面的にキーワード引数形式へ移行した変更です。namespacegetといったルーティングメソッドへのオプション渡しが、従来のハッシュ形式(位置引数)からキーワード引数形式(**options_hash)へ切り替えられました。

しかし、page_routesメソッド内の build_route 呼び出しの一箇所だけ、ハッシュロケット形式 "/path" => "controller#action" がそのまま残っていました。本PRはその見落としを解消するクリーンアップです。

技術的な変更

lib/active_admin/router.rbpage_routesメソッド内、カスタムページアクションのルートを生成する箇所が修正されました。

変更前:

build_route(verb, "/#{page}/#{action.name}" => "#{page}##{action.name}")

変更後:

build_route(verb, "/#{page}/#{action.name}", to: "#{page}##{action.name}")

ハッシュロケットでパスとコントローラアクションを対応付けていた書き方を、パスを第2引数として独立させ、to: キーワード引数でコントローラアクションを指定する形式へ変更しています。同じpage_routes内の上の行にある router.get "/#{page}", to: "#{page}#index" と同じスタイルになり、ファイル内での一貫性が得られました。

PR本文に明記されているとおり、この変更は純粋にスタイルの統一であり、Rails 8.1の非推奨警告の解消やランタイムの動作変更は伴いません。

設計判断

既存のto:キーワード引数形式との統一が優先されています。

#8837の対応時に見落とされた箇所を個別PRとして修正することで、変更の意図と影響範囲を明確に分離しています。動作に関係のないスタイル修正を機能変更と混在させないというアプローチは、レビューやgit blameでの追跡を容易にします。

まとめ

本PRは、#8837で着手したルーティングコードのキーワード引数統一を完成させる一行の修正です。機能的な変更はないものの、コードベース全体でのルート定義スタイルが揃い、今後のメンテナンス性が向上します。

記事メタデータ

Generated by:
Claude Sonnet 4.6 for DiffDaily
LLM Trace:
b8cd4421

この記事はAIによって自動生成されています。内容の正確性については、必ずソースコードやPRを確認してください。

品質レビュー結果

Review Status:
承認済み
Review Count:
1回
Reviewed by:
Gemini 2.5 Pro for DiffDaily

Review Criteria:

記事構成 ✓ PASS

Title, Context, Technical Detailの存在と明確さ

「総論→各論→結論」の3部構成が明確です。リード文で要旨を述べ、背景、技術詳細、設計判断、まとめが適切に配置されています。

カスタムMarkdown構文 ✓ PASS

シンタックスハイライト・GitHubリンク記法の正確性

ファイル名付きシンタックスハイライト(```ruby:lib/active_admin/router.rb)とGitHubのPRリンク記法([#8837](URL))が正しく使用されています。

対象読者への適合性 ✓ PASS

エンジニア向けの適切な技術レベルと表現

ActiveAdminとRailsの知識を持つエンジニアを対象としており、専門用語の使用や説明の粒度が適切です。

パラグラフ・ライティング ✓ PASS

トピックセンテンス・1段落1トピック・段落長

各セクション・各パラグラフが「総論→各論」の構成になっており、トピックセンテンスが明確です。1段落1トピックの原則も守られており、可読性が高いです。

Diff内容との照合 ✓ PASS

コードブロックとDiff内容の一致

記事内のコードブロックは、提供されたDiffの内容を正確に反映しています。ファイル名も一致しています。

技術用語の正確性 ✓ PASS

技術用語の正確な使用

「キーワード引数」「ハッシュロケット」などの技術用語が正確かつ文脈に即して使用されています。

説明の技術的正確性 ✓ PASS

技術的主張の正確性と論理性

変更の目的が「スタイル統一」であり「ランタイムの動作変更はない」という点が、PR Descriptionに基づいて正確に説明されています。

事実の突合 ✓ PASS

PR情報による主張の裏付け(ハルシネーション検出)

記事のすべての主張が、PRのタイトル、Description、Diffの内容によって裏付けられています。ハルシネーションは見られません。

数値・固有名詞の確認 ✓ PASS

PR番号・コミットID・バージョン等の正確性

PR番号(#9020, #8837)やバージョン番号(Rails 8.1, 8.2)などの数値・固有名詞はすべて正確です。

タイトル・説明との一致 ✓ PASS

記事タイトル・説明とPR内容の一致

記事のタイトルはPRのタイトルと内容を的確に要約しており、主題のズレはありません。

外部知識の正確性 ✓ PASS

PRに記載のない外部知識(LTS、サポート状況など)の不使用

PR情報に記載のない外部知識(サポート終了情報など)の追加はなく、PRの文脈から妥当に推測できる範囲の背景説明に留まっています。

時間表現の正確性 ✓ PASS

時間表現がPR情報と一致しているか

「残っていた」「仕上げ」といった時間的関係を示す表現が、PR内の "remaining" や "cleanup" といった単語と一致しており、正確です。