Rails7
Rails 7 Adds Absolute Cache Expiry
With the introduction of expires_at to Rails Cache it is now possible to set absolute timestamps for cache expiry.Rails 7 belongs_to Change Tracking
Rails 7 adds association_changed? and association_previously_changed? methods for belongs_to associations.Rails 7 Nested Locales in Engines
Rails 7 allows loading nested locales inside the `/locales` directory by default for better organization in larger apps.Rails 7 if_exists for Foreign Keys
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 Security Improvements
MySQL adapter in Rails 7 casts numbers and booleans to string to avoid security vulnerabilities.Rails 7 Adds previously_persisted?
Rails 7 adds previously_persisted? method to check an object previously existed in the database and presently deleted.Rails 7 adds AudioAnalyzer to ActiveStorage
Rails 7 adds AudioAnalyzer to ActiveStorage to extract audio duration and bit_rate.Rails 7 Generators Validate Attributes
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.Rails 7 Raw SQL in ActiveRecord upsert_all
Rails 7 allow passing raw SQL statements to `on_duplicate` and `returning` option as value to ActiveRecord `#upsert_all` method.Rails 7 Context for Unpermitted Params
Rails 7 enables passing context to ActionController::Parameters providing more information to the developer.