This Week in Rails

August 12, 2022

Bugfixes, improvements and more!

Hola, this is Greg bringing you the latest news from the Rails world!

Improve failure safety for RedisCacheStore#delete_multi
This PR fixes the issue when Redis is down and Rails.cache.delete_multi is called. With this change this will be gracefully handled rather than raising an exception.

Ensure drop_enum is always reversible
The recently introduced drop_enum method to drop PostgreSQL Enumerated Types was not reversible with the if_exists: true option, because create_enum could not accept options. Not an issue anymore, because this PR fixes it.

Fix EtagWithFlash when there is no Flash middleware available
In API only Rails apps, the flash middleware is not available which can lead to errors at Etag generation. This change adds a respond_to?(:flash) guard to prevent the errors.

Improvements to assert_enqueued_email_with
This PR adds the params named argument to assert_enqueued_email_with to explicitly provide the parameters to match against parameterized mailers:

assert_enqueued_email_with UserMailer, :deliver_invoice, params: { user: @user }, args: [invoice]

Support multiple preview paths for mailers
The changes in this pull request make it possible to preview emails from engines.

Log redirects from router similarly to controller redirects
These changes makes the router-based redirects emit the same information to the logs as the controller-based redirects do.

25 people contributed to Rails last week, if you want to see all the changes, you can do so here.

Until next time!