Ruby on Rails 8.1.0がリリースされました。
Rails 8.1 has been released! It includes job continuations, structured events, local CI, registry-free deployments, and so much more. Over 500 contributors has code in this new version 🤘 https://t.co/VHvLnj5coF
— DHH (@dhh) October 22, 2025
英語版Changelogをまとめて見るにはGItHubのリリースタグ↓が便利です。v8.1.0
タグの日付は日本時間の2025/10/22 09:35でした。
詳しくは以下のコミットリストをご覧ください。
アップグレード方法については以下の手順をどうぞ。
参考: § 1.3 アップグレード手順 -- Rails アップグレードガイド - Railsガイド
なお、Action NotifierやRack 3の必須化など、8.1.0で予告されていた機能の多くはRails 8.2.0に先送りされています。
参考: 8.2.0 · Milestone #97 · rails/rails
🔗 更新の概要
以下の6つが主要な追加機能です。
🔗 1: Active Job継続機能
🔗 2: 構造化イベントレポート
RailsTokyo #1でRails 8.1 + Structured Event Reportingの紹介をしてきました
🔗 3: ローカルCI
🔗 4: markdownでのレンダリング機能
🔗 5: コマンドラインでのcredentialsフェッチ
🔗 6: 特定の関連付けを非推奨化する機能
Deprecated associations by fxn · Pull Request #55285 · rails/rails
🔗 Action Mailer Changelog
🔗 Structured event subscribers by gmcgibbon · Pull Request #55690 · rails/rails
Action Mailerに以下の構造化イベントを追加。
action_mailer.delivered
action_mailer.processed
Gannon McGibbon
同Changelogより
🔗 Action Pack Changelog
🔗 Treat as: :html
tests request params as :url_encoded_form
by seanpdoyle · Pull Request #50390 · rails/rails
Content-Type: x-www-form-urlencoded
を指定したテストリクエストをas: :html
で送信するよう修正。Sean Doyle
同Changelogより
🔗 Active Record Changelog
🔗 [#55866] Fix SQLite3 data loss during table alterations with CASCADE foreign keys. by ruyrocha · Pull Request #55907 · rails/rails
SQLite3で
CASCADE
外部キーを利用しているテーブルをALTER
で変更したときにデータが失われる問題を修正。SQLite3で、
ON DELETE CASCADE
外部キーを持つ子テーブルから参照されているテーブルをALTER
すると、Active Recordが子テーブルのすべてのデータをエラーなしで削除していた。原因は、SQLiteではスキーマ変更時にテーブルの再作成が必要であり、その際に元のテーブルが一時的に削除され、子テーブルでCASCADE削除がトリガーされていたため。根本原因は、操作の順序が不適切だったことによる。元のコードでは
disable_referential_integrity
をトランザクション内にラップしていたが、SQLiteではPRAGMA foreign_keys
をトランザクション内で変更できない(変更しようとしても無効)。そのため、テーブルの再作成時に外部キーが有効なままになり、CASCADE削除が実行されていた。この修正により順序が入れ替わり、SQLite公式の12ステップ
ALTER TABLE
手続きに従うようになる。つまり、disable_referential_integrity
はトランザクションにラップされるのではなく、トランザクションをラップするようになった。これにより、トランザクション開始前に外部キーが適切に無効化され、コミット後に再度有効化される。これにより、アトミックトランザクションでデータの整合性を維持しつつCASCADE削除を防止できる。Ruy Rocha
同Changelogより
8.1.0でChangelog更新がなかったもの
- Action Cable
- Action Mailbox
- Action Text
- Action View
- Active Job
- Active Model
- Active Storage
- Active Support
- Railties
🔗 8.1.0.rc1までの更新
以下の更新情報をどうぞ。
🔗 8.1.0.beta1までの更新
以下の更新情報をどうぞ。
Rails 8.1.0.beta1のChangelog: Active Model、Action Mailer、Action Mailbox(全項目リンク付き)
Rails 8.1.0.beta1のChangelog: Action Cable、Action Text、ガイド(全項目リンク付き)
TechRachoではRubyやRailsの最新情報などの記事を平日に公開しています。TechRacho記事をいち早くお読みになりたい方はTwitterにて@techrachoのフォローをお願いします。また、タグやカテゴリごとにRSSフィードを購読することもできます(例:週刊Railsウォッチタグ)