Rails 7 allows constructors on has_one :through associationsRails 7 allows build_association and create_association on has_one :through associations.
Rails 7 adds invert_where method to ActiveRecordRails 7 adds invert_where method that will invert all scope conditions.
Rails 7 adds `Enumerable#in_order_of` to put an enumerable in a certain order by a key.With the addition of the `in_order_of` method, we can order enumerable based on the provided series.
Rails 7 ActiveJob adds the ability to communicate enqueue failures to callersActiveJob's `perform_later` method provides a clean way of communicating enqueued job failures to the caller method, allowing developers to handle errors more efficiently.
Rails 7 enables scoping to apply to all queriesRails 7 allows passing all_queries option to the scoping method. This change allows the scoping method to work on all queries for a model in a block.
Rails 7 adds the ability to schedule the query on the background thread poolRails 7 adds the ability to push database queries to the background thread pool, effectively reducing load times by utilizing I/O waits.
Rails 6.1 adds `if_exists` option in `remove_index` operationRails 6.1 adds the `if_exists` option in `remove_index` which when set to true won't raise an error if the index doesn't exist.
Rails 7 adds direct ActiveStorage::Streaming supportRails 7 adds a method to stream directly from your own controllers.
Rails 7 adds `#with_all_rich_text` to eager load all rich text associations at onceRails 7 adds `#with_all_rich_text` to ActionText for eager loading all rich text associations.
Rails 7 adds maximum and minimum methods to EnumerableRails 7 adds `Enumerable#maximum` and `Enumerable#minimum` to calculate the maximum or minimum from extracted elements of an enumerable.