`page_routes`のルート定義をキーワード引数形式に統一
ActiveAdmin::Router#page_routes内に残っていたハッシュ形式のルート呼び出しをto:キーワード形式に変換し、コードベース全体のルート定義スタイルを統一しました。
背景
#8837で、Rails 8.1が導入したルーティングメソッドへのハッシュオプションの位置引数渡しに対する非推奨警告への対応として、ActiveAdmin::Router内のnamespaceやgetなどのメソッド呼び出しがキーワード引数形式(**options_hash)に移行されました。しかし、page_routesメソッド内のbuild_route呼び出し1箇所が、ハッシュ形式のまま取り残されていました。
PRの説明によれば、この変更は純粋にスタイル上のクリーンアップであり、Rails 8.1の非推奨警告の解消や Rails 8.2(edge)互換性への影響は確認されていません。
技術的な変更
lib/active_admin/router.rbのpage_routesメソッド内、カスタムページアクションのルートを構築するbuild_route呼び出し1行が修正されました。
変更前:
build_route(verb, "/#{page}/#{action.name}" => "#{page}##{action.name}")
変更後:
build_route(verb, "/#{page}/#{action.name}", to: "#{page}##{action.name}")
変更前はパスとコントローラー/アクションのマッピングをハッシュロケットで表現した単一のHash引数として渡していました。変更後はパスを第2引数として、to:をキーワード引数として分離して渡しており、同メソッドの直上にあるrouter.get "/#{page}", to: "#{page}#index" と同じスタイルになっています。
設計判断
コードベース全体のルート定義スタイルの一貫性 が優先されています。
PRでは、この変更がランタイムの挙動を変えないことが明示されており、機能変更を一切含まない純粋なスタイルの統一です。#8837でほぼ移行が完了していたところ、page_routes内のbuild_route呼び出しが見落とされていたため、今回のPRでその残余を解消しています。
まとめ
#8837で進めたRails 8.1対応の仕上げとして、page_routes内の最後のハッシュ形式ルート定義をキーワード引数形式に揃えたクリーンアップです。変更は1行にとどまり挙動への影響はありませんが、コードベース全体のルート定義スタイルがこれで統一されます。