This Week in Rails

October 31, 2025

Summary report on CI run and more

Hi, Wojtek here. 🎃 Let’s see if there are any spooky changes in Rails. 🎃

New Rails Releases and End of Support Announcement
Versions 7.0.10, 7.1.6, 7.2.3, 8.0.4, and 8.1.1 have been released. Rails 8.0 has received extended support.

Add a summary report at the end of Continous Integration run
The @results ivar is changed to hold the step title in addition to the success boolean, and any multi-step run or step block will print the failed steps. The output looks like:

❌ Continuous Integration failed in 0.02s
   ↳ Tests: Rails failed
   ↳ Tests: Engine failed

Add algorithm option to has_secure_password

To use a different password hashing algorithm, one can now implement a class that responds to algorithm_name, hash_password, verify_password, password_salt and validate.

Add callable support to allow_nil and allow_blank
Allow passing method name or proc to allow_nil and allow_blank in validations.

Update shard swap prohibition to be more granular
In Rails v7.0.0, shard swapping prohibition was introduced as a global switch that applied to all databases.

For the use case of a multi-database application, the global prohibition is overly broad, and so with this change the method prohibit_shard_swapping will scope the prohibition to the same connection class (i.e., connection_specification_name). This allows an application to prohibit shard swapping on a specific database while allowing it on all others.

Disable SSL default config for out of the box Kamal deployments
Do not assume and force SSL in production by default when using Kamal, to allow for out of the box Kamal deployments. It is still recommended to assume and force SSL in production as soon as you can.

Updates to Active Record Encryption Guide
The new content can be read here.

You can view the whole list of changes here.
We had 22 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.