Rails

Puma-dev: Run Multiple Rails Apps Locally

Use puma-dev to run multiple Rails apps with custom .test domains and HTTPS locally.

Rails 7.2 app:update as Rails Command

The app:update task to be a Rails command, and adds the --force flag to it, to allow running bin/rails app:update while accepting all the changes it makes.

Rails after_all_transactions_commit Callback

Rails 7.2 adds after_all_transactions_commit to safely run actions like job enqueuing only after all transactions are committed.

Rails with_connection for DB Optimization

Rails 7.2 adds with_connection to lease database connections only for a block's duration, improving concurrency for IO-heavy apps.

BatchEnumerator#destroy_all Returns Count

Rails 7.2 enhances BatchEnumerator#destroy_all to return the count of destroyed records.

Rails 7.2 Blob#compose Custom Key Support

Rails 7.2 allows to add custom blob key in the ActiveStorage::Blob APIs

Rails 7.2 order Supports Hash Values

With Rails 7.2, ActiveRecord::Relation#order supports hash values where keys are table name, value is a hash of key (column name) and value (order direction).

Rails 7.2 PG Adapter Date Type Casting

Rails 7.2 adds a Date decoder to the PostgreSQL adapter to type cast date columns to Ruby Date.

Rails 7.2 n_plus_one_only Strict Loading

In Rails 7.2, with strict loading in :n_plus_one_only mode, associations are eagerly loaded and child associations are lazy loaded.

Rails 8 adds Kamal by default.

All new applications using Rails 8 will have Kamal by default.