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.
Rails drops records not listed in QueryMethods#in_order_ofQueryMethods#in_order_of now filters down to only the values provided, matching the behavior of the eponymous Enumerable method.
ActiveRecord::Core "#find" now reuses "#find_by" cache keyActiveRecord::Core now prevents duplicate entries in find/find_by cache resulting in slightly improved performance.
Rails 7 raise ActionController::Redirecting::UnsafeRedirectError for unsafe redirectsNow unsafe redirects raise a UnsafeRedirectError instead of an ArgumentError.
Rails 7 adds accepts_nested_attributes_for support for delegated_typeWith Rails 7, accepts_nested_attributes_for can be used for delegated_type
Rails 7 now allows automatic inverse_of detection for associations with scopesThis update ensures that "inverse_of" takes into consideration the relevant scope when calculating the object to store in memory.
Rails introduces ActiveRecord::Persistence#update_attribute!While update_attribute was used to bypass validations, update_attribute! now does the same but raises ActiveRecord::RecordNotSaved in case of any errors encountered in `before_*` callbacks.
Rails 7 now introduces support for generated columns with PostgresRails 7 now adds support for generated (virtual) columns to the PostgreSQL adapter that has been available since PSQL v12.
Rails 7 renders accurate plain text output for nested fieldsPlain text rendering of nested fields now reserves indentation.
Rails 7 allows setting timestamps on insert_all/upsert_all record creationAll relevant timestamp columns (`created_at`, `created_on`, `updated_at`, `updated_on`) are now set via ActiveRecord when using mass insertion queries.