なるようになるブログ

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

rails commit log流し読み(2024/01/12)

2024/01/12分のコミットです。

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

activejob/CHANGELOG.md

activerecord/CHANGELOG.md


Merge pull request #50382 from summera/polymorphic-multi-db-preload-fix

activerecord/lib/active_record/associations/preloader/association.rbの修正です。

polymorphic associationで同じテーブル名で違うDBに接続するmodelがあった場合、そのassociationのpreloadが正しく行われない(片方のmodelのみpreloadされる)バグがあったのを修正しています。


Prevent CurrentAttributes defaults from leaking

activesupport/lib/active_support/current_attributes.rbの修正です。

ActiveSupport::CurrentAttributesのsubclassを定義した場合に、ActiveSupport::CurrentAttributesで定義されているdefault値がsubclassで参照出来ないよう修正しています。


[Fix #50713] Do not trigger loading of ActiveJob::Base in ActiveJob::TestHelper

activejob/lib/active_job/test_helper.rbの修正です。

ActiveJob::TestHelper load時に直接ActiveJob::Baseにテスト用のadapterをincludeしていたのを、ActiveSupport.on_loadを使用してActiveJob::Baseがloadされたときにincludeするよう修正しています。ActiveJobのconfigの処理より前にActiveJob::Baseがloadされてしまうのを避けるため。


assert_queries doesn't exist anymore

activerecord/test/cases/associations_test.rbの修正です。

assert_queries -> assert_queries_countに修正しています。


Merge pull request #50701 from rails/rm-load-schema

activerecord/lib/active_record/attribute_methods.rbactiverecord/lib/active_record/attribute_methods/primary_key.rbの修正です。

model classにattributeが何も定義されていない場合に、id_valueに対するattribute_aliasesが定義されないバグがあったのを修正しいます。


Fix indenting in SQLite database.yml

railties/lib/rails/generators/rails/app/templates/config/databases/sqlite3.yml.ttの修正です。。

SQLite用のdatabase.ymlのインデントがずれている箇所があったのを修正しています。


Add examples to #slice and #values_at documentation [ci-skip] (#50679)

activemodel/lib/active_model/model.rbactiverecord/lib/active_record/core.rbのdocの修正です。

ActiveModel::Model#sliceActiveRecord::Core#slice、及び、ActiveModel::Model#values_atActiveRecord::Core#values_atのそれぞれのdoc内にexampleコードを追加しています。


Fix [#50260] Support :on option in #set_callback

activerecord/lib/active_record/transactions.rbの修正です。

Active Recordでcallbackを設定する為のActiveRecord::Transactions::ClassMethods#set_callbackメソッドを追加しています。Active SupportにすでにあるActiveSupport::Callbacks::ClassMethods#set_callbackメソッドと同じメソッドなのですが、after_commitafter_rollbackでcallback option(callbackの実行処理を制限する:onオプションなど)をサポートする為にActive Recordに実装を追加しています。