Railsプロジェクトは9月13日(現地時間)、Rails 7.1の最初のベータ版となる「Rails 7.1 Beta 1」をリリースしました(公式ブログ)。Rails 7.0以降、800人を超える貢献者によって5,000を超えるコミット行われたとのこと。開発チームはRails 7.1正式版へむけて新機能のテストへの協力を要請しています。
Rails 7.1では、新規にアプリケーションを生成する際に、Docker関連ファイルが作成されるようになりました。作成されたファイルは、Dockerを使用して本番環境にRailsアプリケーションをデプロイするための基本的なセットアップとして機能し、開発目的ではないとのことです。
docker build -t app . docker volume create app-storage docker run --rm -it -v app-storage:/rails/storage -p 3000:3000 --env RAILS_MASTER_KEY=app
また、開発者が独自の認証システムを構築するのに役立つ新機能が追加されています。属性の正規化を宣言するnormalizes
や、ユーザ認証の際に一般的なタイミング攻撃から保護するauthenticate_by
、パスワードリセットなどトークンを必要とする機能ためのgenerate_token_for
、パスワード更新時に現在のパスワードを自動的に検証できるhas_secure_password
が利用可能となっています。
Active Recordの非同期クエリが拡充され、遅いクエリを、リクエストの処理を進めながら並行して実行することが容易になりました。非同期集計(count、sumなど)、単一レコードを返すメソッド、Relation以外のメソッドが追加されています。
- async_count
- async_sum
- async_minimum
- async_maximum
- async_average
- async_pluck
- async_pick
- async_find_by_sql
- async_count_by_sql
Trilogy MySQLアダプタの組み込みサポートや、複合主キーのサポート、大量のジョブを同時にエンキューするperform_all_later
の追加、config.autoload_lib
とconfig.autoload_lib_once
の導入によるオートロードの強化、JavaScriptランタイムBunのサポートなど、さまざまな新機能が追加されています。
Ruby on Rails 7.1の新機能についてはリリースノートでも確認可能です。