Model.inspect のスキーマ情報メッセージを文法的に正しい形に修正
Model.inspect がスキーマ未ロード時に出すヒントメッセージに、英語として不自然な複数形 informations が使用されていました。今回の PR はこれを単数形 information に置換し、表記を正しく統一した変更です。
背景
inspect メソッドはスキーマがロードされていないモデルクラスに対し、"(call '.load_schema' to load schema informations)" という文字列を付与していました。このメッセージは開発者がスキーマロードを促すための案内としてユーザーに直接表示されます。
information は不可算名詞であり複数形 informations は英語として誤りです。コードベース全体で唯一この複数形が現れ、他箇所では正しく単数形が使用されていたため、表記揃いの観点から修正が必要と判断されました。
このような表記の不一致は、開発者体験を損ねるだけでなく、ドキュメントやテストとの乖離を生む可能性があります。したがって、ユーザーに提示されるメッセージの文法的正確さを確保することが本修正の主目的です。
技術的な変更
activerecord/lib/active_record/core.rb の inspect 実装内で、対象文字列リテラルを informations から information へ直接置換しました。変更前後は以下の通りです。
- "#{super} (call '#{super}.load_schema' to load schema informations)"
+ "#{super} (call '#{super}.load_schema' to load schema information)"
同時に、期待文字列を検証するテスト activerecord/test/cases/invalid_connection_test.rb も同様に置換し、テストが新メッセージに合致することを確認しました。
- assert_equal "#{Bird.name} (call '#{Bird.name}.load_schema' to load schema informations)", Bird.inspect
+ assert_equal "#{Bird.name} (call '#{Bird.name}.load_schema' to load schema information)", Bird.inspect
この修正は文字列リテラルの差分に留まり、ロジックや API の振る舞いには一切影響を与えません。コードパスはそのままで、表示内容だけが正しい英語表記に変わります。
設計判断
本 PR は 最小限の差分で問題を解決する 方針を採用しています。文字列置換のみで済むため、リファクタリングや新たな設定キーの導入といった大規模変更は不要でした。
メッセージはユーザー向けのヒントであり機能的な契約を持たないため、表記を正すことは後方互換性に影響しません。既存の動作は維持されたまま、英語表記の正確さだけが向上した点が設計上のメリットです。
このように、機能に影響を与えない文言修正 を選択したことは、リスクを抑えつつコードベースの品質を高める典型的な判断と言えます。
まとめ
Model.inspect がスキーマ未ロード時に出力するメッセージの informations を information に統一したことで、英語表記の一貫性が確保されました。変更は文字列リテラルの置換とテスト更新に留まり、機能面への影響はなく、リスクが極めて低いシンプルな改善です。