なるようになるブログ

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

rails commit log流し読み(2023/03/29

2023/03/29分のコミットです。

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

railties/CHANGELOG.md

activerecord/CHANGELOG.md

actionpack/CHANGELOG.md


Accept list of composite primary keys in #destroy

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

destroyメソッドにcomposite primary keyのリストを指定出来るよう修正しています。


Merge pull request #47610 from ghiculescu/less-rake

rails guideの修正です。

各taskを実行するのにrakeを使用している箇所を、railsコマンドを使用するよう修正しています。


Merge pull request #47736 from rails/thread-safety

activesupport/lib/active_support/notifications/fanout.rb

Notifications::Fanoutでsubscribersを保持するのにHashを使用していたのをConcurrent::Mapを使用するよう修正しています。thread safeにする為。


Use compute_if_absent to make sure we don't get race conditions

activesupport/lib/active_support/notifications/fanout.rbの修正です。

先の対応のフォローアップとして、Concurrent::Mapで値が指定されてなかった場合の初期化処理にcompute_if_absentを使用するよう修正しています。race condition対策。


Use bin/rails for Rake commands usage

railties/lib/rails/commands/rake/rake_command.rbの修正です。

Rake commands usageのrailsbin/railsに修正しています。


Merge pull request #47787 from Shopify/pm/cpk-destroy


Remove superflous check

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

不要なidがArrayかどうかのチェックを削除しています。


Merge pull request #47718 from jonathanhefner/command-did_you_mean-load-rake-tasks-only-once

railties/lib/rails/commands/rake/rake_command.rbの修正です。

bin/rails --helpに表示されるコマンドの一覧に、ユーザが定義したrakeタスクも含まれてしまっていたのを、rails及びpluginで提供されているコマンドのみ表示されるよう修正しています。


Merge pull request #47679 from smridge/update-trix

Action Textの修正です。

bundleしているTrixのバージョンを2.0.4に更新しています。Update Action Text's Trix dependencyで同様の対応を行ったのですが、その際にTrixのバージョンが2.0.4ではなく2.0.0になってしまっていた為、再度2.0.4に更新するよう対応しています。


Merge pull request #47640 from a5-stable/add-record-not-destroyed

rails guideのActive Record Callbacksの修正です。

after_destroy, before_destroy 及び around_destroy callbackでActiveRecord::RecordNotDestroyedでraiseされた場合の挙動についての説明を追加しています。


Use bin/rails in generator Base banner

railties/lib/rails/generators/base.rbの修正です。

generatorのbannerでrailsではなくbin/railsを使用するよう修正しています。


Merge pull request #47753 from mscoutermarsh/auto-gen-index-name

activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rbactiverecord/lib/active_record/migration/compatibility.rbの修正です。

自動で生成されるindex名について、エラーにならない長さ(62 bytes)になるよう修正しています。生成されるindex名が左記のサイズを超えた場合、エラーにならない長さに調節 + index名がユニークになるようユニークなidを付与するよう修正しています。

# before
index_testings_on_foo_and_bar_and_first_name_and_last_name_and_administrator

# after
idx_on_foo_bar_first_name_last_name_administrator_5939248142

Use idx instead of ix for index prefix

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

indexのprefixとしてix_を使用していたのを、idx_を使用するよう修正しています。


Merge pull request #47734 from olefriis/add-arel-node-docs-for-binding-parameters-and-plus

activerecord/lib/arel/nodes/node.rbのdocの修正です。

Arel.sqlのdocにbinding parameterを使用する場合の説明とexampleを追加しています。


Alias ActionController::Parameters except as without

actionpack/lib/action_controller/metal/strong_parameters.rbの修正です。

ActiveController::Parametersexceptのaliasとしてwithoutを定義するよう修正しています。


Fix Gemfile resolution on parser gem

Gemfile.lockの修正です。

rubocop-ast 1.27.0が要求するバージョンとマッチするよう、parser gemを最新バージョンに更新しています。


Fix Enumerable#in_order_of to preserve duplicates

activesupport/lib/active_support/core_ext/enumerable.rbの修正です。

Enumerable#in_order_ofが重複したkeyの値を除外するようになってしまっていたのを、重複した値も保持するよう修正しています。


Merge pull request #47796 from Shopify/pm/read-attribute

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

#read_attribute(:id)にcomposite primary keyのサポートを追加しています。


ActiveModel::Type::SerializeCastValue only compute compatibility once per class

activemodel/lib/active_model/type/serialize_cast_value.rbの修正です。

ActiveModel::Type::SerializeCastValueで値がcompatibleかどうかのチェックをインスタンス毎に行っていたのを、classで行う&値をキャッシュするようにして、各インスタンスで処理を行わないでよいよう修正しています。class共通の値で各インスタンス毎に処理を行う必要は無い値の為。