Rails 7 adds support for deferrable foreign key constraints in PostgreSQLBy 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 swappingRails provides the config option ActiveRecord::Base.prohibit_shard_swapping that prevents swapping of database shards.
Rails 7 adds optional transaction arguments to with_lockWith Rails 7 we can pass transaction arguments like isolation, joinable, etc directly to with_lock
Rails loads ActionCable via ZeitwerkZeitwerk 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 inputAdd support for accessing the form as a property of the
Rails conforms to destroy_association_async_job config when destroying asynchronouslyRails 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 configSchema dumps can now be toggled and dump filepaths can be set for individual database shards.
Rails 7 allows permitting numeric paramsRails 7 eliminates the issue of permitting nested hash. Now required attributes can be permitted by calling the permit method directly on the parent hash.
Rails provides better ActiveRecord enum assertionsActiveRecord now explicitly checks if the enum values are empty by raising an ArgumentError.
Rails adds support for Fiber-safe ActiveRecord ConnectionPoolsActiveRecord's ConnectionPool is now fiber-safe! Adjust the value of config.active_support.isolation_level to either rely on threads or fibers to give a better throughput on fiber-oriented servers like Falcon.