なるようになるブログ

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

rails commit log流し読み(2022/08/02)

2022/08/02分のコミットです。

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

actionview/CHANGELOG.md

activerecord/CHANGELOG.md


Merge pull request #45714 from simi/proper-verbose-cleanup

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

target versionのチェック処理より先にMigration.verboseの指定処理を行うよう修正しています。テストでverboseの値が誤って設定されてしまうのを防ぐ為。


Allow templates to define which locals they accept.

actionview/lib/action_view/base.rbactionview/lib/action_view/template.rbの修正です。

templateで受け付けるlocals変数を定義出来るよう修正しています。 定義は、locals マジックコメントで定義出来るようになっています。

<%# locals: (message:) -%>
<%= message %>

この定義でデフォルト値も指定出来るようになっています。

<%# locals: (message: "Hello, world!") -%>
<%= message %>

Rename 'Explicit LocalstoStrict Locals`

Action Viewの修正です。先のlocals変数の定義について、名称をExplicit LocalsからStrict Localsに変更しています。


Fix Cache::NullStore with local caching for repeated reads

activesupport/lib/active_support/cache/strategy/local_cache.rbの修正です。

Cache::NullStore + local cachingで同じkeyに対するread処理を複数回行った場合に、エラーになってしまう事があったのを修正しています。


find_or_create_by: handle race condition by finding again

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

find_or_create_by(!)メソッドの実装が、find_by || create(!)だったのを、find_by || create_or_find_by(!)に変更しています。unique constraintによりレコードの作成に失敗したようなケースで、レコードの取得が出来るようにする為。


Fixes Date Helper with locale

actionview/lib/action_view/helpers/date_helper.rbの修正です。

i18nで独自のmonth_namesを定義している場合に、date helperのrender時にcan't modify frozen Arrayが発生してしまうバグがあったのを修正しています。


Accept empty list of attributes for insert_all, insert_all! and upsert_all

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

insert_all(!)upsert_allに空のattributesのリストを指定出来るよう修正しています。空のリストが指定された場合、処理は行われず、ActiveRecord::Result.emptyを返るようになっています。


Fix flaky tests for RedisCacheStore

activesupport/test/cache/behaviors/cache_store_behavior.rbactivesupport/test/cache/stores/redis_cache_store_test.rbの修正です。

テストの中でテストで使用しているcache storeのnamespacenil化していたのを、しないよう修正しています。パラレルでテストを実行した場合に、他のテストに影響が出てしまう可能性がある為。