なるようになるブログ

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

rails commit log流し読み(2025/11/13)

2025/11/13分のコミットです。

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

activemodel/CHANGELOG.md

actionpack/CHANGELOG.md

activerecord/CHANGELOG.md


Merge pull request #56135 from thiagopradi/removing-unused-fixture-directory

Action Viewのテストの修正です。

使用していないfixturesを削除しています。


Merge pull request #56130 from lovro-bikic/symbol-error-messages-on-custom-attributes

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

ActiveModel::Validations#read_attribute_for_validationにrecordに存在しないattributeが指定された場合に、exceptionをraiseしていたのをnilを返すよう修正しています。errors.addにcustom attributeを指定したような場合に、エラーメッセージ生成時にエラーにならないようにする為。

# User modelに`address` attributeはなし
user.errors.add(:address, :invalid)

user.errors.messages #=> 元はexceptionがraiseしていたのが、正しくエラーメッセージが返るようになっている

Merge pull request #56128 from muriloduarte/feat/actionpack-rate-limit-callable-to-and-within

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

rate_limitto、及び、withオプションに、callable(lambdaまたはproc)、または、メソッド名のsymbolを指定出来るよう修正しています。

class APIController < ApplicationController
  rate_limit to: :max_requests, within: :time_window, by: -> { current_user.id }

  private
    def max_requests
      current_user.premium? ? 1000 : 100
    end

    def time_window
      current_user.premium? ? 1.hour : 1.minute
    end
end

Merge pull request #56097 from djmb/parallel-test-reset-tables-with-delete

Active Recordの修正です。

parallel testでDBのtableの削除を行う際、MySQLではTRUNCATEではなくDELETEを使用するよう修正しています。格納されているデータ量にもよるのですが、rowが1000程度の場合だと、MySQLではDELETEの方が速いため。


Merge pull request #56143 from callmesangio/fix-performance-docs

rails guideのTuning Performance for Deploymentの修正です。

Pumaのconfigurationについて説明している箇所のタイポを修正しています。


Empty all tables with delete for trilogy

activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rbactiverecord/lib/active_record/connection_adapters/mysql2/database_statements.rbの修正です。

先のparallel testの削除処理にDELETEを使用する対応が、mysql2 adapterの場合のみそうなっていたのを、trilogy adapterの場合も同じ挙動になるよう修正しています。