Tech Racho エンジニアの「?」を「!」に。
  • Ruby / Rails関連

Rails 8.1.0.beta1のChangelog: Active Storage(全項目リンク付き)

🔗 Active Storage Changelog

参考: Release 8.1.0.beta1 · rails/rails
参考: コミットリスト: Comparing v8.0.2.1...v8.1.0.beta1 · rails/rails

breaking changesの可能性があるプルリク・コミット

  1. f3e0670(Remove deprecated :azure storage service)
  2. #53623(Prevent Active Storage Blob from autosaving Attachments)

個別のプルリクにも目印として★を追加しています。

🔗 Remove deprecated :azure storage service · rails/rails@f3e0670

非推奨化されていた:azureストレージサービスを削除した。

Rafael Mendonça França
同Changelogより

参考: Deprecate ActiveStorage::Service::AzureStorageService by zzak · Pull Request #52863 · rails/rails

🔗 Remove unnecessary calls to the GCP metadata server by drcapulet · Pull Request #55353 · rails/rails

GCPのメタデータサーバーへの不要な呼び出しを削除した。

Google::Auth.get_application_defaultを呼び出すと、メタデータサーバーへの呼び出しが明示的にトリガーされる。多数のファイル操作のために呼び出された場合、かなりのテールレイテンシが発生し、メタデータサーバーの過負荷になる可能性がある。代わりに、アプリケーションでは以下の方法を推奨する(この方がはるかに効率的)。

Google::Apis::RequestOptions.default.authorization = Google::Auth.get_application_default(...)

アプリケーションでcredential(認証情報)を設定していない場合は、GCPライブラリによって自動的にcredentialが決定される。

これにより、impersonation(偽装)などでGCPサービスアカウントに紐づけられていないcredentialも利用可能になる。

Alex Coomans
同Changelogより

🔗 Upload progress accounts for server processing time by jeremy · Pull Request #55157 · rails/rails

ダイレクトアップロードのプログレス表示でサーバー処理時間も考慮されるようになった。

Jeremy Daer
同Changelogより

参考: §11 ダイレクトアップロード -- Active Storage の概要 - Railsガイド

🔗 Delegate ActiveStorage::Filename#to_str to #to_s by seanpdoyle · Pull Request #54185 · rails/rails

ActiveStorage::Filename#to_str#to_sに委譲した。

これによって文字列型で以下の比較が可能になる。

filename = ActiveStorage::Filename.new("file.txt")
filename == "file.txt" # => true
filename in "file.txt" # => true
"file.txt" == filename # => true

Sean Doyle
同Changelogより

🔗 Add config option for MD5 class to support FIPS compliance by mrpasquini · Pull Request #54040 · rails/rails

config.active_storage.checksum_implementationでMD5の別実装を指定可能になった。

それとともに、OpenSSLのFIPSモードによってOpenSSL::Digest::MD5が無効になっていることが判明した場合は、自動的に低速なDigest::MD5実装にレベルダウンするようになった。

Matt PasquiniJean Boussier
同Changelogより

参考: active_storage fips 140-2 issue · Issue #34443 · rails/rails
参考: FIPS 140-3 に準拠した OpenSSL の最新バージョン「OpenSSL 3.1」公開 |BLOG| サイバートラスト

🔗 Prevent Active Storage Blob from autosaving Attachments: by Edouard-chin · Pull Request #53623 · rails/rails

Active Storage::Blobが添付ファイル(ActiveStorage::Attachment)を自動保存しないように変更された。

これによって添付ファイル付きのレコードのダーティ属性がリセットされるようになり、そのレコードでafter_commitコールバックが動作しなくなる(期待通りの振る舞い)。

この修正は内部的なものであり、アプリケーション側の変更は不要。ActiveStorage::Attachmentは引き続き別のリレーション経由で自動保存される。

Edouard-chin
同Changelogより

以下の#55144で、config.active_storage.touch_attachment_recordsにfalseを設定しているとblobをレコードに添付するときにActiveRecord::ActiveRecordError: Cannot touch on a new or destroyed record object. Consider using persisted?, new_record?, or destroyed? before touching.エラーが発生することが報告されています。このエラーは、アプリケーションのコードが#53623で修正される前の添付ファイル自動保存に暗黙で依存していたためと思われます。

参考: Disabling ActiveStorage.touch_attachment_records causes attaching blobs to raise ActiveRecord::ActiveRecordError (Cannot touch on a new record) · Issue #55144 · rails/rails

関連記事

速報: Rails World 2025のDHHキーノートとRails 8.1beta1リリース

Rails 8.0 Changelog(全項目リンク付き)

Rails 7.2.0 Active Storage CHANGELOG(全項目リンク付き)


CONTACT

TechRachoでは、パートナーシップをご検討いただける方からの
ご連絡をお待ちしております。ぜひお気軽にご意見・ご相談ください。