なるようになるブログ

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

rails commit log流し読み(2024/02/29)

2024/02/29分のコミットです。

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

activerecord/CHANGELOG.md


Expose a generic fixture accessor for fixture names that may conflict with Minitest

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

fixtureをfixtureメソッド経由でも取得出来るよう修正しています。

# 元々の取得方法
assert_equal "Ruby on Rails", web_sites(:rubyonrails).name

# 今回追加された`fixture`メソッド経由での取得方法
assert_equal "Ruby on Rails", fixture(:web_sites, :rubyonrails).name

従来通りfixture名経由でも取得出来るのですが、このfixture名がminitestのメソッドとコンフリして使用出来ない場合にもデータを取得出来るようにする為。


Clear all threads query cache when a connection is pinned

activerecord/lib/active_record/connection_adapters/abstract/query_cache.rbの修正です。

clear_query_cacheメソッドで、connectionが固定されている場合全てのスレッドのquery cacheをclearするよう修正しています。poolがquery cacheを保持するようになった影響で、system testのようにtransactional testで複数スレッドが動作する場合、異なるスレッドが同じconnectionを保持するが、cacheは違うデータを保持する、という事が発生するようになりました。そのため、そのような場合に、異なるcacheを使用する事でメソッド実行時にエラーになるのを避ける為、全てのスレッドのquery cacheをclearするよう修正しています。