なるようになるブログ

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

rails commit log流し読み(2023/08/31)

2023/08/31分のコミットです。

CHANGELOGへの追加はありませんでした。


Clarify deprecation warning for alias_attribute

activemodel/lib/active_model/attribute_methods.rbactiverecord/lib/active_record/attribute_methods.rbの修正です。

alias_attributeでattributeでないメソッドに対してaliasが設定されている場合に出力されるdeprecateメッセージを改善し、問題となっているメソッド名などの詳細も表示されるよう対応しています。


Merge pull request #49082 from fatkodima/profile-tests

railties/lib/minitest/rails_plugin.rbの修正です。

test runnerにテスト実行時間のprofileの為の機能を追加しています。rspec--profileと同じような機能です。


Allow KILL queries on read-only connections for mysql

activerecord/lib/active_record/connection_adapters/mysql/database_statements.rbの修正です。

read-only connectionに対してKILL QUERYを実行出来るよう修正しています。KILLはreplicaに対して実行しても問題無い(何もwriteはしない)為。


Merge pull request #49078 from ilyaabramovich/patch-1

rails guideのActive Record Query Interfaceの修正です。

Merging of Scopesの項で生成されるSQLのexampleが実際に生成されるSQLと異なっていたのを修正しています。


[skip ci] Trilogy description added for rails 7.1 release note

rails guideのRuby on Rails 7.1 Release Notesの修正です。

Trilogy adapterについての詳細な説明を追加しています。


[skip ci] ActionView notable changes added to 7.1 release note

rails guideのRuby on Rails 7.1 Release Notesの修正です。

Action ViewのNotable changesについての説明を追加しています。


[skip ci] ActionJob notable changes added to 7.1 release note

rails guideのRuby on Rails 7.1 Release Notesの修正です。

Active JobのNotable changesについての説明を追加しています。


Optimize ActiveRecord::LogSubscriber#query_source_location

Active Record、Active Supportの修正です。

ActiveRecord::LogSubscriber#query_source_locationでsourceを取得する際に、Ruby 3.2以上の場合はThread.each_caller_locationを使用するよう修正しています。元々はKernel#callerを使用していたのですが、stackのサイズが大きくなればなるだけ実行が遅くなってしまう為、アプリによってはこのsource取得処理が大変遅くなってしまっていました。そのため、Thread.each_caller_locationを使用して必要な最初のメソッド呼び出し部分だけを取得するようにして、高速に処理が行えるよう改善しています。

参考: Feature #16663: Add block or filtered forms of Kernel#caller to allow early bail-out


Prevent NoMethodError in extract_value when specifying non-existent keys

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

ActionController::Parameters#extract_valueメソッドに存在しないkeyを指定した場合に、NoMethodErrorをraiseしていたのをnilを返すよう修正しています。