Rails 8.0.2がリリース!主な変更点と修正内容まとめ(2025年3月12日)

2025年3月12日、Ruby on Railsの最新バージョンである Rails 8.0.2 がリリースされました。
今回のアップデートでは、主にActive Supportを中心に複数の重要な修正と改善が行われています。

この記事では、Rails 8.0.2の主な変更点をコード例とともに詳しく解説します。

目次

Rails 8.0.2の主な変更点と修正内容

to_time_preserves_timezoneの設定に関する修正

new_framework_defaults_8_0.rbにおけるto_time_preserves_timezoneの設定に関する問題が修正されました。
これにより、タイムゾーンの扱いがより正確になります。

Active Support Cacheのfetch_multiメソッドの修正

ローカルキャッシュが有効な場合、fetch_multiメソッドが欠落したエントリに対して適切にブロックを呼び出すよう修正されました。

cache.fetch_multi("key1", "key2") do |key|
# 欠落したエントリに対してブロックが正しく呼び出される
end

重大な例外の報告機能の改善

SystemStackErrorNoMemoryErrorなどの重大な例外も、Railsのエラーレポーターが適切に報告できるよう改善されました。

RedisCacheStoreとMemCacheStoreの接続プールエラー処理の改善

RedisCacheStoreおよびMemCacheStoreで発生する接続プール関連のエラーが、Rails.errorに正しく報告されるようになりました。

read_multiメソッドのバージョン有効期限の尊重

ローカルキャッシュを使用する際、ActiveSupport::Cache#read_multiがバージョンの有効期限を正しく尊重するよう修正されました。

MessageVerifierとMessageEncryptorのon_rotationコールバックの修正

ActiveSupport::MessageVerifierおよびActiveSupport::MessageEncryptoron_rotationコールバックがドキュメント通りに動作するよう修正されました。

verifier = ActiveSupport::MessageVerifier.new(secret)
verifier.rotate(old_secret).on_rotation do |message, key|
# コールバックが正しく呼び出されるようになった
end

MessageVerifierのURLセーフ・アンセーフなペイロード検証の改善

URLセーフおよびURLアンセーフなペイロードの両方を検証できるようになり、以前に生成された署名付きメッセージを無効にすることなくシームレスな移行が可能になりました。

キャッシュのfetchメソッドでの有効期限の修正

:race_condition_ttlオプションを使用した場合でも、指定した有効期限が正しく尊重されるよう修正されました。

cache.fetch("key", expires_in: 1.hour, race_condition_ttl: 5.seconds) do
"value"
end
# TTLが正しく1時間に設定されるようになった

set_callbackでのスプラット引数を持つブロックの処理改善

スプラット引数を持つブロックをset_callbackで適切に処理できるよう改善されました。

String#mb_charsメソッドの修正

String#mb_charsがレシーバーを変更せず、force_encodingを呼び出す前にレシーバーを複製するよう修正されました。

ErrorSubscriberの改善(ビューエラーの二重報告防止)

エラーの原因も報告済みとしてマークするよう改善され、特にビューでのエラーが二重に報告される問題が解消されました。

Module#module_parent_nameの修正(無名モジュールの親名取得)

無名モジュールが後で定数に割り当てられた場合、正しい親モジュール名を返すよう修正されました。

mod = Module.new
mod.module_parent_name # => "Object"
MyModule::Something = mod
mod.module_parent_name # => "MyModule"(修正後は正しく親名を返す)

Rails 8.0.2へのアップデート方法

Rails 8.0系を利用中の場合、GemfileのRailsバージョンを以下のように指定してアップデートできます。

gem "rails", "~> 8.0.2"

その後、以下のコマンドを実行します。

bundle update rails

まとめ

Rails 8.0.2では、Active Supportを中心に多くの重要な修正が行われ、安定性とパフォーマンスが向上しています。
Railsアプリケーションを運用している方は、早めのアップデートを検討しましょう。

さらに深く学びたい方へ

この記事で紹介した技術をマスターするには、体系的な学習が重要です。独学で挫折しそうな方は、現役
エンジニアから直接学べるプログラミングスクールも検討してみてください。

現場で通用するスキルを身につけるなら

DMM WEBCAMPのカリキュラムは、実際の開発現場を想定したチーム開発も経験できます。ポートフォリオ制作
支援もあり、転職活動で差をつけられます。

未経験から4ヶ月でエンジニアとして活躍できるレベルまで成長可能です。

実務レベルのWeb開発スキルを習得するなら

RUNTEQは、1000時間の圧倒的学習量で、現場で即戦力となるWebエンジニアを育成します。Ruby on
Railsに特化し、実際のWebサービス開発を通じて実践力を養います。

卒業生の多くが自社開発企業への転職に成功している実績があります。

じっくり理解を深めたい方へ

この記事で紹介した内容を確実に身につけるには、分からない点をすぐに質問できる環境が重要です。CodeCa
mpなら、現役エンジニアとのマンツーマンレッスンで、あなたのペースで着実にスキルアップできます。

朝7時〜夜23時まで、365日受講可能なので、仕事や学業と両立しながら学習を進められます。

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次