https://github.com/rails/rails
Active Recordの暗号化機能が自動登録する大量のフィルタパターンによるパフォーマンス問題を解決。プリコンパイル段階で冗長なパターンを検出・削除し、単一の正規表現に統合することで、フィルタリング処理を効率化しました。
Active Record暗号化使用時にfilter_parametersが指数関数的に増加し、属性フィルタリングのパフォーマンスが著しく低下する問題を修正。継承された属性と新規属性を区別することで、組み合わせ爆発を防ぎます。
Active Recordに永続化メソッドが暗黙的に作成するトランザクションをカスタマイズできる`implicit_persistence_transaction`メソッドが追加されました。モデル単位でトランザクション分離レベルの指定や、既存トランザクション内での二重トランザクション回避が可能になります。
memcachedクライアントライブラリDalliをバージョン5にアップグレード。Dalli 4.1.0以降で非推奨とされていたバイナリプロトコルに関する警告を解消し、テストコードにバージョン判定による条件分岐を導入することで、Dalli 4/5両方での動作互換性を確保。
Dalli 5.0.0でバイナリプロトコルが削除されたことでRailsのテストが実行不能になったため、メタプロトコル対応が完了するまでの暫定措置としてdalliのバージョンを4.x系に制約しました。
`ActiveRecord::Relation#values`メソッドが`:nodoc:`としてマークされ、内部メソッドとして扱われることが明確化されました。メソッド自体は削除されず、ドキュメントから除外されることで、互換性を保ちながらAPI境界の明確化を実現しています。
ThroughReflectionが複合主キーを正しく処理できていなかった問題を修正。配列判定と要素ごとの文字列変換を追加し、has_many through関連付けでの複合主キー使用時に発生していたActiveRecord::UnknownAttributeReferenceエラーを解消しました。
Rails.app.revisionがENV["REVISION"]を優先的に参照するようになり、デプロイメントプロバイダーが設定する環境変数を直接利用できるようになりました。これにより、REVISIONファイルの作成やGitリポジトリの同梱が不要になります。
Railsの開発環境で使用するRubyを4.0.1に更新。rails/devcontainerリポジトリでのサポート追加に追従し、Dockerfileのバージョン指定を更新した変更。
Rails開発環境でBundler 4.0.4において`bundle update <gem>`が失敗する問題を修正。Bundler 4.0.6へのアップデートにより、Gitモノレポ環境での依存解決が正常に機能し、個別のgemを更新できるようになりました。
キャッシュバックエンドから破損したデータが返された場合に、デシリアライズエラーをキャッシュミスとして扱う仕組みが導入されました。エラーレポーターへの報告とキャッシュミスへの変換という二段階アプローチにより、アプリケーションの堅牢性と監視可能性を両立しています。
ActiveModel::AttributeSet::YAMLEncoderをClassからModuleに変更し、テーブルごとのインスタンス生成を不要にしました。default_typesをパラメータとして渡す設計により、メモリ効率が向上し、スキーマ再読み込み時の状態管理が削減されています。
Active Record Migrationsガイドにおいて、古い「PgAdmin III」を「pgAdmin」に更新し、外部キー制約の説明で誤って使われていた「reviewers」を「authors」に修正しました。
INSERT実行時のプライマリキー検索が、データベース直接問い合わせからスキーマキャッシュ経由に変更されました。生SQLでのINSERT実行時に、2回目以降はスキーマ取得のためのデータベースアクセスが不要になります。
Active Recordのコネクションプールにおいて、コネクション固定時の不要な検証処理が削除されました。最近使用されたコネクションを再検証しないロジックを活用することで、パフォーマンスと信頼性のバランスが改善されています。
Query Log TagsのコンテキストにSQL文字列が追加され、クエリの内容に応じた動的なタグ付けが可能になりました。これにより、レプリカ振り分けのデバッグなど、SQLクエリの特性に基づいた詳細な情報をログに付与できます。
テストスキーマ検証時に各データベースで2回発生していた接続プール作成を1回に削減。`load_schema_if_pending!`が単一の接続プールで複数のチェックを実行するよう再構成され、複数データベース環境でのテスト起動時間が改善されました。
Rails 8.2では`rescue_from_handled.action_controller`イベントに完全なバックトレースを格納できるようになりました。`config.action_controller.rescue_from_event_backtrace = :array`により、Active Jobイベントとの一貫性を確保しながら、詳細なエラートラッキングが可能になります。
ActiveRecordの`insert_all!`メソッドに`unique_by`オプションが追加され、`insert_all`との機能的な一貫性が確保されました。これにより、重複時に例外を発生させる場合でも、特定のユニークインデックスを指定した競合検出が可能になります。
ActionText::Attachableのread_attribute_for_serializationメソッドをpublicに変更。ActiveModel::Serializationの可視性変更に追従し、active_model_serializersとの互換性を回復。