Rails

Rails 7 adds AudioAnalyzer to ActiveStorage

Rails 7 adds AudioAnalyzer to ActiveStorage to extract audio duration and bit_rate.

Rails 7 Generators Validate Attributes

Rails 7 generators will validate the type by checking if it is of a default migration type and will raise an error if it is invalid.

Rails 7 Raw SQL in ActiveRecord upsert_all

Rails 7 allow passing raw SQL statements to `on_duplicate` and `returning` option as value to ActiveRecord `#upsert_all` method.

Rails now serves files via proxy

Rails 6.1 has added support to ActiveStorage that serves files via proxying.

Rails 7 Context for Unpermitted Params

Rails 7 enables passing context to ActionController::Parameters providing more information to the developer.

Rails 7 adds encryption to ActiveRecord

Rails 7 supports application-level encryption. We can declare which attributes should be encrypted and, ActiveRecord will encrypt and decrypt when necessary.

Rails 7 has_one Callbacks Called Once

In Rails 7, the autosave association callbacks for the has_one are non-cyclic.

Rails 7 Nested Secrets via Method Calls

We can now access nested secrets stored in credentials.yml.enc using the dot (.) syntax instead of using [ ]

Rails 7 disable_joins for has_one :through

In multiple database applications, associations can't join across databases. When set, Rails makes 2 or more queries rather than using join for associations.

Rails 7 Adds Enumerable#sole Method

Enumerable#sole returns the sole item in the enumerable and raises an exception if no items or more than one item is found.