なるようになるブログ

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

rails commit log流し読み(2025/09/26)

2025/09/26分のコミットです。

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

activerecord/CHANGELOG.md

actionpack/CHANGELOG.md


Merge pull request #55713 from Shopify/optimize-schema-dump

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

ActiveRecord::Tasks::DatabaseTasks.dump_allが同じschemaが複数回dumpしてしまっていたのを、生成済みのschemaについてはdumpを行わないよう修正しています。


Merge pull request #55496 from TobiasBales/action_on_open_redirect

Action Pack、railtiesの修正です。

オープンリダイレクトを行おうとした際の挙動を、config(config.action_controller.action_on_open_redirect)で指定出来るよう修正しています。同じ用途のconfig.action_controller.raise_on_open_redirectsというconfigがあるのですが、こちらは挙動にraiseをするかどうかしか指定出来ないようになっていました。新しく追加されたconfigは、ログ出力(:log)、Active Support notificationに出力(:notify)、及び、例外を発生(:raise)を指定出来るようになっています。合わせて、config.action_controller.raise_on_open_redirectsはdeprecatedにしています。


Setting max_connections to nil means no limit

activerecord/lib/active_record/connection_adapters/abstract/connection_pool.rbactiverecord/lib/active_record/database_configurations/hash_config.rbの修正です。

database configurationのmax_connectionsnilを指定した場合、上限の指定無し、として扱うよう修正しています。


Move implementation fully into #index_serializers

activejob/lib/active_job/serializers.rbactivejob/lib/active_job/serializers/object_serializer.rbの修正です。

ObjectSerializer#klassメソッドを削除して、custom serializerに#klassメソッドが定義されていなかのチェックをシンプルに行えるようリファクタリングしています。


Support virtual (not persisted) generated columns on PostgreSQL 18+

Active Recordの修正です。

PostgreSQL 18で追加されたvirtual generated columnsをサポートするよう修正しています。stored: trueが明示的に指定されていない場合、デフォルトでvirtual generated columnsが使用されるようになっています。

create_table :users do |t|
  t.string :name
  t.virtual :lower_name,  type: :string,  as: "LOWER(name)", stored: false
  t.virtual :name_length, type: :integer, as: "LENGTH(name)"
end

参考:PostgreSQL: Documentation: 18: E.1. Release 18


Merge pull request #52297 from dennispaagman/verbose_redirect_logs

Action Pack、railtiesの修正です。

redirectが実行された場合に、どこから処理が呼ばれたかを記録するための、action_dispatch.verbose_redirect_logsを追加しています。この設定がtrueの場合、active_record.verbose_query_logsactive_job.verbose_enqueue_logsと同様に、redirectに関するログが出力されるようになっています。

Redirected to http://localhost:3000/posts/1
↳ app/controllers/posts_controller.rb:32:in `block (2 levels) in create'