Rails 7では、モダンな開発環境をサポートしつつ、開発者体験を大幅に向上させるために、多くの新機能と改善が導入されました。以下がその主要な特徴です
1. Hotwireによるリアルタイムフロントエンドのサポート
-
Hotwire(HTML Over The Wire) が標準でサポートされ、モダンなフロントエンド開発がシンプルになりました。
- Turbo: ページ遷移を高速化し、サーバーサイドでHTMLを生成することで、従来のSPAのような体験を提供します。
- Stimulus: JavaScriptのコードを最小限に抑え、HTMLベースで動的なインタラクションを構築可能。
- ReactやVue.jsのようなフロントエンドフレームワークを使わず、リッチなインターフェースを実現。
2. WebpackerからImport Mapsへの移行
-
Import Maps がデフォルトになり、JavaScriptモジュールの管理が簡素化されました。
- WebpackやNode.jsのセットアップが不要。
- 必要なJavaScriptライブラリをサーバーから直接読み込み可能。
3. Active Recordの強化
- Active Recordがさらに進化し、以下のような機能が追加されました:
- Async Query Loading: クエリを非同期で実行し、パフォーマンスを向上。
- Strict Loading: 未定義のリレーションへのアクセスを防止し、N+1問題を回避。
- Encryption: データベースレベルでの暗号化がサポートされ、機密情報のセキュリティが向上。
4. メール配信機能の改善
-
Action Mailbox や Action Text の統合が進化。
- メールを受信して処理する機能(Action Mailbox)。
- リッチテキスト編集機能(Action Text)。
5. JavaScriptランタイムへの依存の削減
- Rails 7では、Node.jsやYarnの依存が不要になり、シンプルな開発環境が提供されています。
- UJSの置き換えとしてHotwireが導入されたことで、Railsのフロントエンドがより洗練されました。
6. 新しいジェネレーター
- Rails 7では、
bin/rails generate
コマンドが改良され、以下のような新しいジェネレーターが利用可能です。- TurboとStimulusを組み込んだコンポーネントの作成が容易に。
7. Ruby 3の完全サポート
- Ruby 3の 並列処理(Ractors) や パターンマッチング などの機能を活用可能。
- Ruby 3との統合によるパフォーマンス向上。
8. Zeitwerkモードの改良
- デフォルトのコードローダーがZeitwerkに変更され、コードの自動読み込みがより効率的に。
- クリーンなオートローディングが実現。
Rails 7は、モダンなアプリケーション開発をシンプルかつ効率的に行うための強力な基盤を提供しています。Hotwireの導入やImport Mapsの採用により、JavaScriptへの依存を減らしつつリッチなユーザー体験を実現できる点が特徴です。