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アプリケーションを運用している方は、早めのアップデートを検討しましょう。

未経験からエンジニアへ転職!おすすめの転職サービスはこちら

「未経験だけどエンジニアになりたい…」「IT業界に興味があるけど、どこから始めるべきかわからない…」
そんな方におすすめなのが、プログラミングスクールを活用した転職活動です。
実績豊富なスクールを利用すれば、未経験からでもエンジニアとしての転職がぐっと近づきます!

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

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