Action Viewの条件分岐を統合してコードを整理
load_defaults メソッド内の重複した if respond_to?(:action_view) ブロックが統合されました。これにより、Rails 8.0の設定定義がより簡潔になります。
背景
railties/lib/rails/application/configuration.rb の load_defaults メソッドでは、Rails 8.0向けの設定として action_view.render_tracker と action_view.remove_hidden_field_autocomplete の2つのオプションを定義していました。しかし、この2つの設定が同じ respond_to?(:action_view) 条件で囲まれているにもかかわらず、別々のブロックに分かれていました。
この構造は、関連コードの調査中に不自然であると気づかれました。PR Descriptionによると、作者がプロジェクトで load_defaults を8.0から8.1に変更する作業をしている際、近くのコードを見て改善を試みたものです。
技術的な変更
重複していた条件判定ブロックを1つに統合し、action_view の設定を連続して記述する形に変更されました。
変更前:
if respond_to?(:action_view)
action_view.render_tracker = :ruby
end
if respond_to?(:action_view)
action_view.remove_hidden_field_autocomplete = true
end
変更後:
if respond_to?(:action_view)
action_view.render_tracker = :ruby
action_view.remove_hidden_field_autocomplete = true
end
変更内容は、2つ目の if respond_to?(:action_view) ブロックとその end を削除し、action_view.remove_hidden_field_autocomplete = true を最初のブロック内に移動させただけです。設定値自体には変更はありません。
設計判断
単純な統合 のみが選択されました。
同じ条件判定を繰り返す必要性がないため、ブロックを1つにまとめることで可読性が向上しています。PR Descriptionでは、この重複は #55336 で追加されたコードに由来することが示唆されていますが、本PRでは統合のみを行い、設定の追加や変更は行われていません。
この変更は、コードの構造的な改善に焦点を当てた典型的なリファクタリングです。
本PRは、コードレビューの視点を保ちながら日常的に遭遇する重複を取り除いた変更です。条件判定の統合により、Rails 8.0の設定定義がより直感的で保守しやすいコードになっています。