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

Ruby 3.0 adds `Hash#except` and `ENV.except`

Ruby 3.0 adds `Hash#except` to return a new hash that includes everything from the original hash except the given keys. `ENV` also gets support for `except`.

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.

Rails allows a module with extend ActiveSupport::Concern to be prepended

This blog post discusses the concept of prepending in Ruby and prepending concerns with the help of Active Support in Rails.

Ruby adds support for forwarding arguments to a method, along with the leading arguments

... operator was limited to forwarding arguments. With Ruby 3.0, it can forward the arguments along with the leading arguments.

Rails adds support for adding a default value to the rich text area

Rails has added support for adding a default value to the form field of type rich text area.

Ruby adds `Symbol#name` to return frozen string corresponding to the symbol name

Ruby has added `Symbol#name`, which returns the name of the symbol if it is named. The returned string can not be modified.