なるようになるブログ

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

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

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

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

actionpack/CHANGELOG.md


Do not inline process mailers when calling deliver_all_later

actionmailer/lib/action_mailer/message_delivery.rbの修正です。

deliver_all_laterを使用した場合に、mailerのinline processが2回行われてしまうバグがあったのを修正しています。


Emit structured debug events in development only

railties/lib/rails/application/bootstrap.rbの修正です。

Event Reporterのdebug eventの発行が、デフォルトでdevelopmenttestで有効になっていたのを、developmentでだけ有効化するよう修正しています。色々議論があった結果、testでdebug eventが実行される必要はないだろう、となったとの事です。


Merge pull request #55655 from viralpraxis/fix-leftover-docs-references-to-activestorage-representations-controller

Active Storageのdocの修正です。

既に存在しない、ActiveStorage::RepresentationsControllerについて言及している箇所がdocに残っていたのを修正しています。


If a serialized job is decoded when ActiveSupport.parse_json_times is true, use the Time object

activejob/lib/active_job/core.rbの修正です。

ActiveSupport.parse_json_timesがtrueになっている環境でjobのargumentsのserializeをした場合に、enqueued_at及びscheduled_atをdeserializeする際にエラーになってしまうバグがあったのを修正しています。

Restore exact behavior of AJ Arguments.serialize

Active Jobの修正です。

Active Jobのargumentsのserialize処理の性能改善を行った、Optimize Active Job argument serialization by ~5xの影響で、Arguments.serializeの挙動が変わってしまった(元々は#mapが定義されているobjectだけを受け付けていたが、どんなobjectでも受け付けるようになった)のを、serializeメソッドは元に戻し、そこから性能改善を行ったメソッドを呼び出す形に修正しています。Arguments.serializeはpublicメソッド、かつ、この変更で影響を受けてしまった処理があったためのようです。


Merge pull request #55651 from eqladios/do-not-add-seed-step-when-using-skip-active-record

railties/lib/rails/generators/rails/app/templates/config/ci.rb.ttの修正です。

rails new--skip-active-recordが指定された場合に、ci.rbdb:seedを実行する処理を含まないよう修正しています。


Merge pull request #55660 from chaadow/add_more_tests_for_deliver_all_later

actionmailer/test/message_delivery_test.rbの修正です。

ActionMailer.deliver_all_laterにarrayを渡した場合のテストを追加しています。


Merge pull request #55663 from byroot/aj-obj-serializer-template

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

serializeメソッド実行毎にhashを生成していたのを、生成していた値をコンストラタで生成&freezeして、メソッド呼び出しごとにhashが生成されないよう修正しています。


RateLimiting: support method names for :by and :with

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

rate_limitメソッドの:by:withオプションに、メソッド名を指定出来るよう修正しています。

class SignupsController < ApplicationController
  rate_limit to: 10, within: 1.minute, with: :redirect_with_flash

  private
    def redirect_with_flash
      redirect_to root_url, alert: "Too many requests!"
    end
end