なるようになるブログ

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

rails commit log流し読み(2018/12/04)

2018/12/04分のコミットです。

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

activerecord/CHANGELOG.md


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_alldestroy_all等の削除メソッド実行後に、scope等のcacheをresetするよう修正しています。

firstlast等で取得した情報のcacheがそのままになっていて、削除メソッド実行後にfirst / lastを実行した場合に削除したはずのレコードが返される、というバグがあった為。


Ensure that delete_all on collection proxy returns affected count

activerecord/lib/active_record/associations/has_many_association.rbactiverecord/lib/active_record/associations/has_many_through_association.rbの修正です。

collection proxyのdelete_allメソッドが、削除したレコード数を返すよう修正しています。

CollectionProxyの親クラスであるRelationdelete_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を生成しないというオプションをユーザがとれるようにする為に追加しています。