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.
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.