Rails

Rails 7 now lazy loads schema cache

Use a config option to now switch between eager and lazy schema cache loading.

Rails does not require role when to be passed to connected_to

The connected_to block no longer throws an ArgumentError when called without a role parameter so as to pave the way for a more simplified and buildable syntax.

Rails 7 adds support for deferrable foreign key constraints in PostgreSQL

By default, foreign key constraints in PostgreSQL are checked after each statement. This works for most use cases but becomes a major limitation when creating related records before the parent record is inserted into the database.

Rails adds the ability to prevent unwarranted shard swapping

Rails provides the config option ActiveRecord::Base.prohibit_shard_swapping that prevents swapping of database shards.

Rails 7 adds optional transaction arguments to with_lock

With Rails 7 we can pass transaction arguments like isolation, joinable, etc directly to with_lock

Rails loads ActionCable via Zeitwerk

Zeitwerk is a new thread-safe code loader introduced in Rails 6. Now, ActionCable and other related modules are loaded via Zeitwerk.

Rails 7: Action Text: forward form: option to hidden input

Add support for accessing the form as a property of the element.

Rails conforms to destroy_association_async_job config when destroying asynchronously

Rails no longer ignores the configuration option destroy_association_async_job when destroying objects with destroy_async option.

Rails 7 adds support for setting the schema dump filepath in the database config

Schema dumps can now be toggled and dump filepaths can be set for individual database shards.

Rails 7 allows permitting numeric params

Rails 7 eliminates the issue of permitting nested hash. Now required attributes can be permitted by calling the permit method directly on the parent hash.