なるようになるブログ

読書感想文かrailsについてかrubyについてか

rails commit log流し読み(2025/01/07)

2025/01/07分のコミットです。

CHANGELOGにのったコミットは以下の通りです。

actionview/CHANGELOG.md

activerecord/CHANGELOG.md


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.rbactionview/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.rbactionview/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.rbactiverecord/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へのリンクテキスト内の適切な箇所にスペースを追加しています。


Fix NameError: uninitialized constant ActiveRecord::ConnectionAdapters::Mysql2::DatabaseStatements::ER_UNKNOWN_STMT_HANDLER

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-vipsmini_magickimage_processing)の設定をboot時に行うよう修正しています。元々は処理実行時に該当のpluginが使用出来るかチェックしていたのですが、それだとリクエスト処理中になってしまい、pluginのロード等でエラーになった場合にそのログがリクエストのログに紛れてしまいわかりづらい、という問題がありました。そのため、boot時にチェックを行うようにして、pluginのロード等のエラーによるログを確認しやすくなるようにしています。


Use assert_raises(match:) for lock_version: nil tests

activerecord/lib/active_record/locking/optimistic.rbactiverecord/test/cases/locking_test.rbの修正です。

optimistic lock用のカラムをnilで更新しようとしたときのエラーメッセージを調整、及び、この挙動を確認する為のテストでassert_raises(match:)を使用するよう修正しています。