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.