RepoJournal

$ cat rails/week/2026-09-21.log

Rails

Rails

the week in review · Sep 21 – Sep 27, 2026

Active Model drops Ruby 4.3 alias, breaking nightly

By RepoJournal · composed from the cited sources · human-reviewed weekly · methodology

♥

Rails nightly against ruby 4.1.0dev has failed since September 17 in every framework that loads Active Model.

95 commits 48 PRs merged 5 releases 7 briefings covered

all rails reviews →

Avoid aliasing `Kernel#respond_to?` in `ActiveModel::AttributeMethods` rails/rails

by yahonda

Nightly runs against ruby 4.1.0dev began failing on 2026-09-17, starting at active_model/attribute_methods.rb:563 with a warning about the fallback to Kernel#respond_to?. The change stops aliasing Kernel#respond_to? inside ActiveModel::AttributeMethods, which is the piece every framework loading Active Model inherits.

Avoid materializing `descendants` when resolving an STI subclass rails/rails

by Vadim Hvistik

find_sti_class guarded the resolved class with descendants.include?(subclass), and descendants is not memoized: each call walks Class#subclasses recursively, allocating two arrays per node, then scans the result linearly. Resolving an STI subclass no longer pays that cost.

Fix BroadcastLogger#tagged when broadcasting to multiple tagging loggers rails/rails

by ousamabenyounes

The logger did not define #tagged, so calls fell through to method_missing, which breaks whenever more than one broadcast target supports tagging (issues #49757 and #49745, including the block form). One fix for both the plain and block-form call paths.

Drop the explicit SET FOREIGN_KEY_CHECKS statements from MySQL `db:schema:load` rails/rails

by Yasuo Honda

structure_load ran SET FOREIGN_KEY_CHECKS = 0 before loading, a line dating from the first Rails commit, when Rails wrote the file itself from SHOW CREATE TABLE output. MySQL schema:load no longer emits it.

Use standard input for MySQL `db:schema:load` rails/rails

by Yasuo Honda

MySQL 9.4.0 added the --commands option to the mysql client; it is off by default across the 9.x and 26.x series including 9.7 LTS, and disabling it turns off local commands like source, which broke schema_format = :sql. The loader now feeds the schema over standard input instead.

Fix #48375: Server-Timing double-counting of nested same-name events rails/rails

by Edilbek

ActionDispatch::ServerTiming summed duration across every event sharing a name, and since Event#duration includes time spent in child events, nested same-name events were counted twice in the header. Issue #48375.

Merge pull request #58817 from yahonda/fix-alias-fallback-to-object-in-attribute-methods rails/rails

by Yasuo Honda

The alias-fallback fix for ActiveModel::AttributeMethods is merged, closing out the ruby master nightly failure.

Merge pull request #58832 from luizkowalski/fix/json-schema-cache-integer-bounds rails/rails

by fatkodima

Integer bounds are restored from the JSON schema cache, fixing casting that truncated values.

$ ls rails/week/ # the briefings behind this review

Keep up with Rails in about 3 minutes: what actually shipped — the commits, pull requests, releases, and security advisories that matter.

or

fair warning: these emails are deeply technical. diffs, version numbers, CVEs, benchmark deltas. if that's not your idea of a good read, this isn't your newsletter.

Folds into your digest — weekly by default, monthly if you prefer. Unsubscribe in one click.

all rails reviews →