2023/03/29分のコミットです。
CHANGELOGにのったコミットは以下の通りです。
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のrails
をbin/rails
に修正しています。
Merge pull request #47787 from Shopify/pm/cpk-destroy
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.rb
、
activerecord/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::Parameters
にexcept
の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共通の値で各インスタンス毎に処理を行う必要は無い値の為。