Rails 7 moves ActiveRecord::Base.logger to a class_attribute leading to a 7x speed improvement
Rails 7 utilized Ruby's cache for cvars to improve ActiveRecord::Base.logger performance 7x. Let's deep dive into this!ActiveRecord::Calculations will now use column-based type casting
Rails 7 now harmonizes results of ActiveRecord::Calculations.average by applying column-based typecasting. Now, floating-point number columns will be aggregated as Float.Ruby 3.1 adds try_convert method to Integer class for implicit conversions
try_convert for Integer will convert the object into an instance of the class via the implicit conversion method to_int and returns nil if no implicit conversion method is defined.React 18 improves the existing behavior of Suspense
React 18 delays committing everything inside the Suspense boundary (the suspended component and all its siblings) until the suspended data resolves.Rails 7 allows setting cache expiry, as an absolute timestamp
With the introduction of expires_at to Rails Cache it is now possible to set absolute timestamps for cache expiry.Rails 7 adds change tracking methods for belongs_to associations
Rails 7 adds the ability to track if an association has been pointed to a new target record in the previous save and whether it will point to a new target record in the next save.React 18 adds automatic batching
React 18 adds out-of-the-box performance improvements by doing more batching by default.Rails 7 allows loading nested locales in the engine
Rails 7 allows loading nested locales inside the `/locales` directory by default for better organization in larger apps.React 18 introduces new root API ( ReactDOM.createRoot )
React 18 adds the new root API that comes up with the new out-of-the-box improvements.Rails 7 adds support for `if_exists/if_not_exists` on `remove_foreign_key/add_foreign_key`
Rails 7 adds support for `if_exists/if_not_exists` on `remove_foreign_key/add_foreign_key` in migrations to silently ignore raised exceptions.