Ateam Finergy Inc. Advent Calendar 2019の21日目です。
今回は、前回10日目に投稿したRails6.0.2の変更点まとめの続きになります。
前回はActive Support
,Active Job
,Action Pack
,Railties
について記述しました。
今回はActiveRecord
についてです。
1. マルチDBのトランザクションテストの修正
マルチDBのトランザクションテストの際、プライマリーとレプリカで同じコネクションプールを共有するようになっています。
プライマリーで作成したレコードをレプリカから参照できない、というバグの修正になります。
2. associationのthrow :abort
時の処理を修正
ActiveRecord::Associations
でthrow :abort
した場合に、コールバックチェーンが停止しないバグがあったのを修正しています。
3. where.not
の非推奨メッセージの表示条件を修正
Rails6.0.0から、where.not
が否定論理和(NOR)として動作することが非推奨となりました。
その非推奨のメッセージを表示する条件に一部不具合があったため、修正しています。
- 参照
4. db:migrate
実行後のDBコネクションを修正
db:migrate
タスクを実行した後、タスク実行前に接続していたDBコネクションに再び接続するように修正しています。
5. AcceptanceValidator
のマルチスレッド処理のための修正
AcceptanceValidator
は、フォーム上のチェックボックスがオンになっているかどうかの検証を行なっています。
今回の修正ではMutex
という排他制御のためのクラスを使って、マルチスレッドでも正しく動作するようにしてます。
6. 最後に
ActiveRecord
についての変更もバグ修正ばかりでしたね。
引き続き、Rails6の品質がより向上していくことを期待しています。