Ruby on Rails: Ractor Safety and the Great Insert Refactor

Rails developers pushed hard on two fronts this week - making core objects safe to use inside Ractors, and cleaning up how Active Record handles inserts and raw SQL - alongside a security fix disabling untrusted image processing in Active Storage.

Duration: PT2M35S

Episode overview

This episode is a short developer briefing from Ruby on Rails.

It explains recent repository work in plain language.

  • Show: Ruby on Rails
  • Published: 2026-07-30T13:13:12Z
  • Audio duration: PT2M35S

Transcript excerpt

This excerpt keeps the crawler page concise. Listen to the episode or use the RSS feed for the full update.

Good day, and welcome to Ruby on Rails, July 30th, 2026.

The signal today: Rails is quietly hardening itself for Ractor-based concurrency, while Active Record's insert internals got a major cleanup. And there's a security fix worth knowing about if you process images.

First, Ractor safety. Several PRs from Edouard-chin tackle the same root problem - objects that lazily memoize values break when accessed from a non-main Ractor. PR 58294 fixes `to_partial_path` by ensuring string interpolation returns frozen strings. PR 58298 does the same for `model_name`, freezing the instance…

Second theme: Ryuta Kamizono is on a tear simplifying insert handling in Active Record. PR 58290 lets `returning:` accept a single column name instead of forcing an array. PR 58296 refactors that logic to pass a query intent object directly instead of raw SQL strings. PR 58309 renames the `arel` parameter to `arel…

Separately, a security-relevant merge: libvips's untrusted image loaders and savers are now disabled by default in Active Storage. That's a breaking change for apps processing BMP, ICO, PSD, or SVG through Vips - those will now raise errors unless explicitly re-enabled.

What's next: watch for…

Nearby episodes from Ruby on Rails

  1. Ractor Safety and the Great Insert Cleanup
  2. Correctness Cleanup Across the Stack
  3. Cleaning Up the Schema Building Internals
  4. Weekly Recap - Route Loading Safety and the Great Dead Code Sweep
  5. Cleaning Up Legacy Keyword Argument Patterns
  6. Cleaning Up Old Debts
  7. Boot-Time Fixes and Startup Performance
  8. The Great Dead Code Purge