Rails
Rails provides better ActiveRecord enum assertions
ActiveRecord now explicitly checks if the enum values are empty by raising an ArgumentError.Rails adds support for Fiber-safe ActiveRecord ConnectionPools
ActiveRecord'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_of
QueryMethods#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 key
ActiveRecord::Core now prevents duplicate entries in find/find_by cache resulting in slightly improved performance.Rails 7 raise ActionController::Redirecting::UnsafeRedirectError for unsafe redirects
Now unsafe redirects raise a UnsafeRedirectError instead of an ArgumentError.Rails 7 adds accepts_nested_attributes_for support for delegated_type
With Rails 7, accepts_nested_attributes_for can be used for delegated_typeRails 7 now allows automatic inverse_of detection for associations with scopes
This 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 Postgres
Rails 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 fields
Plain text rendering of nested fields now reserves indentation.