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.Rails 7 MySQL adapter improves the security of untyped bound values
MySQL adapter in Rails 7 casts numbers and booleans to string to avoid security vulnerabilities.React 17 attaches events to the root DOM container instead of the document node
React 17 delegates events to the root node instead of the document node, making it easier to embed React into apps built with other technologiesRuby 3.1 introduces pattern matching pin operator against expression
Ruby 3.1 adds support for the expression and range when using the pattern matching pin operator.Rails 7 adds previously_persisted? method to ActiveRecord
Rails 7 adds previously_persisted? method to check an object previously existed in the database and presently deleted.React 17 introduces new JSX transform
React 17 introduces jsx-runtime and jsx-dev-runtime that enables the user to write JSX without importing React.Rails 7 adds AudioAnalyzer to ActiveStorage
Rails 7 adds AudioAnalyzer to ActiveStorage to extract audio duration and bit_rate.Rails 7 generators will raise errors if an attribute type is invalid
Rails 7 generators will validate the type by checking if it is of a default migration type and will raise an error if it is invalid.