2025/01/07分のコミットです。
CHANGELOGにのったコミットは以下の通りです。
- Argument errors related to strict locals in templates now raise an
ActionView::StrictLocalsError
, and all other argument errors are reraised as-is. - Layouts have access to local variables passed to
render
.
Merge pull request #54004 from kmcphillips/km-error-reporting-guide-test
rails guideのError Reporting in Rails Applications
の修正です。
Reporting Unexpected Errors
セクション内の.unexpected
の挙動について説明している箇所に、test
envもdevelopment
envと同じ挙動である旨説明を追加しています。
[ci skip] Configure encryption in active_record
bug report template
guides/bug_report_templates/active_record.rb
にencryptionの設定を追加、及び、CONTRIBUTING.md
に説明が不足していたbug report templatesへのリンクを追加しています。
Fix guides url does not work when clicking the link [ci skip]
rails guideの修正です。
guideの先頭にあるhttps://guides.rubyonrails.org.**
を<https://guides.rubyonrails.org>.**
に修正しています。元の状態だとVS Codeでクリックした場合に期待通りにページに遷移出来ない為。
fix: ArgumentErrors raised during template rendering
actionview/lib/action_view/base.rb
、
actionview/lib/action_view/template/error.rb
の修正です。
strict localsに関するエラーのエラークラスがArgumentError
だったのを、専用のエラークラス(ActionView::StrictLocalsError
)を使用するよう修正しています。本来のArgumentError
(e.g. メソッドの引数の指定誤り)とstrict localsに関するエラーが混ざっていると、デバッグがやりづらくなってしまうという問題があった為。
ActionView: Layouts can access local variables
actionview/lib/action_view/layouts.rb
、
actionview/lib/action_view/renderer/template_renderer.rb
の修正です。
layoutファイルからrender
に指定されたlocal variablesを参照出来るよう修正しています。Rails 5.1から意図せず参照出来なくなってしまっていた為。
Use constant instead of comment in MySQL2Adapter
activerecord/lib/active_record/connection_adapters/mysql2/database_statements.rb
、
activerecord/lib/active_record/connection_adapters/mysql2_adapter.rb
の修正です。
statementのhandlingでエラーになった場合のエラーコードを、数字を直接参照していたのを定数化しています。他のエラーコードは全て定数として定義されている為。
Merge pull request #54112 from skipkayhil/hm-migrate-reset
activerecord/lib/active_record/railties/databases.rake
の修正です。
db:migrate:reset
のdescがコメントアウトされていたのを、コメントアウトを削除しています。rake --tasks
実行時にtaskが表示されるようにする為。
Merge pull request #54098 from djfpaagman/fix_individual_app_update_commands
railties/lib/rails/commands/app/update_command.rb
の修正です。
app:update
配下の個別のコマンド(app:update:configs
)を実行した際にエラーになってしまうバグがあったのを修正しています。
"encryption,database" => "encryption, database" [ci skip]
rails guideのContributing to Ruby on Rails
の修正です。
Active Record用のbug report templatesへのリンクテキスト内の適切な箇所にスペースを追加しています。
activerecord/lib/active_record/connection_adapters/mysql2/database_statements.rb
の修正です。
Use constant instead of comment in MySQL2Adapterで追加された定数の指定方法に誤りがあったのを修正しています。
Sort table columns by name when dumping schema
activerecord/lib/active_record/schema_dumper.rb
の修正です。
schema.rb
内のtable columnsがcolumnの作成順にソートされていたのを、アルファベット順にソートするよう修正しています。元のソート順だと、migrationの実行順に依存する為、schema.rb
の結果が環境ごとに変わる可能性があり、全ての環境で同じ順序でファイルが生成されるようにする為。
Load configured Active Storage plugins during boot
Active Storageの修正です。
Active Storageのplugins(e.g. ruby-vips
、mini_magick
、image_processing
)の設定をboot時に行うよう修正しています。元々は処理実行時に該当のpluginが使用出来るかチェックしていたのですが、それだとリクエスト処理中になってしまい、pluginのロード等でエラーになった場合にそのログがリクエストのログに紛れてしまいわかりづらい、という問題がありました。そのため、boot時にチェックを行うようにして、pluginのロード等のエラーによるログを確認しやすくなるようにしています。
Use assert_raises(match:) for lock_version: nil tests
activerecord/lib/active_record/locking/optimistic.rb
、
activerecord/test/cases/locking_test.rb
の修正です。
optimistic lock用のカラムをnil
で更新しようとしたときのエラーメッセージを調整、及び、この挙動を確認する為のテストでassert_raises(match:)
を使用するよう修正しています。