2018/12/04分のコミットです。
CHANGELOGにのったコミットは以下の通りです。
- Reset scope after delete on collection association to clear stale offsets of removed records.
- Ensure that
delete_all
on collection proxy returns affected count. - Allow disabling scopes generated by
ActiveRecord.enum
.
Merge pull request #34602 from guizmaii/master
activerecord/lib/active_record/connection_adapters/abstract_adapter.rb
の修正です。
sql.active_record
instrumentationのpayloadにconnection
objectを追加しています。
元々connection
のidは含んでいたのですが、idはJRubyでは役に立たない(ObjectSpace.#_id2ref
が使えないのでidからインスタンスが取得出来ない)為、connection
のobject自体を含むようにしています。
Merge pull request #34596 from bogdanvlviv/imporve-parallel-testing-guide
rails guideのTesting Rails Applications
の修正です。
Parallel Testing
の項の修正として、言い回しの修正、シンタックスハイライトが正しく行われるようコードブロックにlangの指定を追加、等を行っています。
Reset scope after collection delete
activerecord/lib/active_record/associations/collection_proxy.rb
の修正です。
activerecord/lib/active_record/associations/collection_proxy.rb
の修正です。
delete_all
やdestroy_all
等の削除メソッド実行後に、scope等のcacheをresetするよう修正しています。
first
やlast
等で取得した情報のcacheがそのままになっていて、削除メソッド実行後にfirst
/ last
を実行した場合に削除したはずのレコードが返される、というバグがあった為。
Ensure that delete_all
on collection proxy returns affected count
activerecord/lib/active_record/associations/has_many_association.rb
、
activerecord/lib/active_record/associations/has_many_through_association.rb
の修正です。
collection proxyのdelete_all
メソッドが、削除したレコード数を返すよう修正しています。
CollectionProxy
の親クラスであるRelation
のdelete_all
では削除したレコード数を返すようになっており、挙動を合わせる為。
option to disable scopes that ActiveRecord.enum
generates by default
activerecord/lib/active_record/enum.rb
の修正です。
enum
メソッドにscopesを生成するかどうを指定する為の_scopes
オプションを追加しています。 _scopes
オプションにfalse
を指定した場合、scopesが生成されないようになっています。
enumが生成するscopesが、既に存在するメソッドとコンフリする事が割とよくあり、その場合に、scopesを生成しないというオプションをユーザがとれるようにする為に追加しています。