Rails6
Rails 6.1 supports `if_not_exists` option for adding index
Rails 6.1 added support for if_not_exists option to add_index. The if_not_exists provided to create_table also gets propagated to all indexes getting created in the create_table block.Using Interactors in Rails
Interactors provide a common interface for performing complex user interactions.Rails adds support for descending order in find_each, find_in_batches and in_batches
Rails 6.1 has added support for providing order(ASC/DESC) to batch processing methods like find_each, find_in_batches and in_batches instead of processing records in ascending order always.Rails adds support for db:rollback:name for multiple database applications
Rails has added support for name option while rollbacking migration for multiple database applicationRails 6.1 add Enumerable#pick to complement Relation#pick
Adding pick to enumerable will enable us to call pick on loaded relations, unloaded relations, and plain enumerables interchangeably.Using Optimizer Hints in Rails
Optimizer Hints allows us to control the query optimizer of a database system. Rails 6 has added support to provide Optimizer Hints.Rails ActiveRecord::Relation#pick now uses already loaded results
Rails ActiveRecord::Relation#pick now uses already loaded results instead of making a new query everytime.Rails [attribute_name]_previously_changed? accepts :from and :to arguments
Rails Active Model Dirty method [attribute_name]_previously_changed? now accepts :from and :to arguments just like [attribute_name]_changed?Rails - Allows to specify schema cache path in database configuration file
Rails now exposes a new configuration for specifying the location of the schema cache file. This can be done in database.yml using schema_cache_path key.Eager loading Active Storage models to avoid N+1 issues
Removing N+1 queries when we access the Active Storage attachments associated with an ActiveRecord model.