This Week in Rails

July 29, 2022

Cache invalidation via ActiveStorage::Blob, Conditionally executing has_secure_password, etc

Maadwo! Emmanuel with some updates on activities in Rails over the last week.

Allow passing Hash on secure password validations
You can now pass an option hash to has_secure_password. If the option evaluates to true, then has_secure_password executes along with validations, otherwise it doesn't. 

Touch model records after ActiveStorage::Blob is analyzed
Models directly associated to an ActiveStorage::Blob will now be touched if the blob in question is re-analysed, invalidating a model's cache and fixing a race condition where a record can be requested and have a cache entry built.

Generate `master.key` even when `require_master_key`
Previously, if config.require_master_key was set to true in config/application.rb, the credentials:edit command couldn't automatically generate a master key file, this PR fixes that. The same fix also applies to encrypted:edit.

Return `Promise<void>` from `Turbo.visit`
When consumer applications navigate through the Turbo.visit, a Promise<void> is now returned that will resolve when the visit is complete. If a visit fails or is cancelled, the Promise will be rejected.

That's it for this week. Until next time!

13 people contributed to Rails since the last time. 

About This Week in Rails

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