Rails

Rails 7 allows benchmark method to be called from anywhere

Rails 7 allows benchmark method to be called from anywhere with Rails.benchmark("test") { ... }

Rails 7 adds query method associated to check for the association presence

Rails 7 adds ActiveRecord::Relation#associated query method to check for the associated record presence

Rails 6.1 adds support for validating numeric values fall in a range using `in:` option

The `numericality` validation helper now accepts `in:` as an option for which the value must be a range.

Rails 6.1.1 allows `where` to reference associations via joined table alias names.

Rails 6.1 allows where clause queries to reference associations used in `join` or `includes` clause via alias names.

Rails form_with now defaults to non-remote forms

Rails form generation helper, "form_with" defaulted to remote forms previously. This would confuse beginners who would expect an HTML response to be rendered. Now, you can configure the default response type.

Rails 6.1 adds support for check constraints to database migrations

With Rails adding support for check constraints to database migrations, check constraints can easily now be added and removed from tables with simple migration DSL. Earlier, the only way to add check constraints to tables was through raw SQL queries.

Rails 6.1 adds support for role switching and sharding in database

Rails 6.1 has added support for switching connections for one database instead of all databases

Rails 6.1 adds support for destroying dependent associations in the background

Destroying multiple layered hierarchy of associated objects can be time consuming and might result in a server timeout error. With Rails adding support for dependent associations to be deleted in the background, this issue is addressed.

Rails 6.1 allows attribute's default to be configured but keeping its type

With Rails 6.1, we can set attribute's default value by keeping the type same

Rails deprecates `db:structure:load` and `db:structure:dump` tasks

Running `db:structure:load` and `db:structure:dump` tasks will run `db:schema:{load/dump}` based on the value of `config.active_record.schema_format`, and they will be removed in Rails 6.2.