This Week in Rails: 2026年5月8日号のハイライト
2026年5月8日付けの「This Week in Rails」では、ActiveJobの属性永続化、フォームヘルパーの拡張、キャッシュのアトミック操作など、実用的な機能追加が10件報告された。
背景
この号はzzakが担当し、「今週は変更が多い」と前置きするほど内容が充実している。フレームワークの各レイヤー(ジョブ、ビュー、キャッシュ、バリデーション、暗号化)にわたる改善が一度に集まった週となった。
技術的な変更
ActiveJob: ジョブ間のデータ永続化
ActiveJob::Attributes が追加され、ActiveJob::Continuable を使ったジョブでステップをまたいでデータを保持できるようになった。これまでは serialize / deserialize をオーバーライドする必要があったが、attribute :payment_token, :string のように型付き属性を宣言するだけでシリアライズと復元が自動化される。
class SubmitEnrollmentJob < ApplicationJob
include ActiveJob::Continuable
attribute :payment_token, :string
end
フォームヘルパーの拡張: datalist サポート
Action Viewに datalist_tag ヘルパーが追加され(#52137)、スタンドアロンなHTML <datalist> 要素とオプション値を生成できるようになった。さらに FormBuilder#datalist(#57318)によって、フォームビルダーオブジェクトとメソッド名からdatalistのIDを自動導出し、テキストフィールドの list: オプションと連携できる。
キャッシュのアトミック読み取り削除
Rails.cache.read に delete: true オプションが追加され、Redisバックエンドでは GETDEL コマンドを使って読み取りと削除を原子的に実行する。OTPのような単一使用値に適した操作で、Rails.cache.read("otp", delete: true) のように呼び出せる。
ActionController::Parameters の複数キー取得
ActionController::Parameters#fetch_values が追加された。Hash#fetch_values と同様に複数の必須キーの値をまとめて取得でき、存在しないキーに対してはブロックでデフォルト値を返せる。
Active Record Encryption の環境変数サポート
Active Record Encryption の primary_key、deterministic_key、key_derivation_salt が Rails.app.creds 経由で環境変数から読み込めるようになった。
バリデーションエラーへの競合IDの追加
validates_uniqueness_of のエラー詳細に :existing_id が含まれるようになった。errors.details を参照するAPIが、ユニーク制約違反時に競合しているレコードのIDを取得できるようになる。
ViewReloader の最適化
ビューのリロード機構が2点改善された。ViewReloader#deactivate(#57285)はリローダーがクリアされる際にリゾルバフックを取り外し、forkされたプロセスでの不要なファイルシステムスキャンを防ぐ。また、ビューパスが登録されていない段階ではビューウォッチャーの初期化を遅延させ(#57269)、空のウォッチャーが後続の無用な再ビルドを誘発する問題を回避する。
アクセシビリティガイドのレビュー募集
Rails Foundationが新しい アクセシビリティガイド(#57293)のレビューを公開している。セマンティックHTML、ARIA、ページ構造、フォーム、Turboインタラクション、CSS、テストを対象としており、PRへのフィードバックが求められている。
まとめ
今号では、ActiveJobの継続性強化やキャッシュのアトミック操作など、信頼性・安全性に直結する実装パターンを簡潔に書けるAPIが複数追加されている。フォームヘルパーの拡張やバリデーションエラーの情報充実といった変更も、既存の設計思想を踏襲しながらフレームワークの表現力を着実に広げるものといえる。