Rails

Rails 7 Deferrable Foreign Keys

By default, foreign key constraints in PostgreSQL are checked after each statement.

Rails Prevents Unwarranted Shard Swapping

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

Rails 7 with_lock Transaction Args

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 form: Option

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

Rails destroy_association_async_job Config

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

Rails 7 Schema Dump Path 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.

Rails Adds Better Enum Assertions

ActiveRecord now explicitly checks if the enum values are empty by raising an ArgumentError.

Rails Fiber-Safe Connection Pools

ActiveRecord's ConnectionPool is now fiber-safe! Configure config.active_support.isolation_level for better throughput.