Rails7

Rails 7 Adds invert_where Method

Rails 7 adds invert_where method that will invert all scope conditions.

Rails 7 Adds Enumerable#in_order_of

With the addition of the `in_order_of` method, we can order enumerable based on the provided series.

Rails 7 ActiveJob Enqueue Failure Handling

Rails 7 lets perform_later accept a block to handle enqueue failures, with successfully_enqueued? and enqueue_error for better error handling.

Rails 7 Scoping Applies to All Queries

Rails 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 Async Query Support

Rails 7 adds the ability to push database queries to the background thread pool, effectively reducing load times by utilizing I/O waits.

Rails 7 Adds ActiveStorage Streaming

Rails 7 adds a method to stream directly from your own controllers.

Rails 7 Adds Rich Text Eager Loading

Rails 7 adds `#with_all_rich_text` to ActionText for eager loading all rich text associations.

Rails 7 Adds Enumerable max/min Methods

Rails 7 adds `Enumerable#maximum` and `Enumerable#minimum` to calculate the maximum or minimum from extracted elements of an enumerable.

Rails 7 Adds sole and find_sole_by Methods

Rails 7 adds ActiveRecord methods `#sole` and `#find_sole_by` to uniquely match only one record in a database.

Rails 7 Adds #excluding to Relation

Rails 7 adds #excluding to ActiveRecord::Relation to exclude a record or collection of records.