This Week in Rails

August 28, 2026

This Week in Rails: August 28, 2026

Hi, it’s Greg. Let’s explore this week’s changes in the Rails codebase.

Agents on Rails: lemans goes open source
Another week, another update from Agents on Rails. This one is a big one: lemans, the harness behind every number we’ve published, is now open source. Also four new models were added: Sonnet 5, Terra, an open-weight Qwen you can run on your own machine, and one that won’t tell us its name.

Actionpack ractorize
This Pull Request changes the following:
  • Make ActionDispatch::ParamBuilder.default ractor safe by using singleton class attr accessor.
  • Make ActionDispatch::Request::LOCALHOST ractor safe by freezing the regex.
  • Make ActionDispatch::Response.default_charset and ActionDispatch::Response.default_headers ractor safe by using class attributes.
Additionally, prefixed partial names were made ractor safe and reset_primary_key was also made ractor compatible.

Add config.active_record.schema_ignored_tables
This Pull Request unifies ActiveRecord::SchemaDumper.ignore_tables and config.active_record.schema_cache_ignored_tables into a single config, config.active_record.schema_ignored_tables.
Both existing configurations are deprecated. Their readers and writers now warn and delegate to the new one, so there is a single source of truth and no remaining code path reads a deprecated setting.
This is a breaking change: tables are matched against their real after the change.
A caption of [click](javascript:alert(1)) previously produced [click](javascript:alert(1)) and now produces \[click\](javascript:alert(1)) to prevent cross-site scripting vulnerabilities.

Add Herb as an HTML-aware ERB implementation
This pull request adds ActionView::Template::Handlers::ERB::Herb, a ::Herb::Engine subclass that closly mirrors ActionView::Template::Handlers::ERB::Erubi. Herb::Engine is specifically built for HTML+ERB templates and is designed to be API-comaptible with Erubi::Engine. Herb parses HTML and ERB into a single syntax tree and uses Prism to parse the Ruby inside the ERB tags. Based on this parser, Herb::Engine is an HTML-aware ERB rendering engine that also understands the HTML semantics during template compilation, guaranteeing that templates cannot produce invalid Ruby and markup.

Allow translate’s scope: argument to resolve relative i18n keys with leading period
With this change, translate’s (and t’s) scope: option can be resolved relative to the current controller and action when it starts with a period, mirroring the existing behavior for the key argument. Calling translate("bar", scope: ".foo") from PostsController#index is now equivalent to calling translate("bar", scope: "posts.index.foo").

You can view the whole list of changes here. We had 25 contributors to the Rails codebase this past week!

Until next time!

About This Week in Rails

Your weekly inside scoop of interesting commits, pull requests and more from Rails.