Ruby on Rails 7.0.2がリリースされました。
Rails 7.0.2 has been released. While this is a patch level release, there are a few notable changes. Please read the blog post for more information. https://t.co/jgRoeRSzP9
— Ruby on Rails (@rails) February 8, 2022
英語版Changelogをまとめて見るにはGItHubのリリースタグ↓が便利です。v7.0.2タグの日付は日本時間の2022年2月9日8:17でした。
- リリースタグ: Release 7.0.2 · rails/rails
詳しくは以下のコミットリストをご覧ください。
🔗 更新の概要
リリースノートには主要な変更として以下が記載されています。
- 機能削除: Active Storageの
DirectUploadsControllerにservice_nameparamを渡す機能が削除された - 新機能: データベーススキーマにRailsのバージョンも含まれるようになった
- 理由: 6.1->7.0アップグレードでスキーマを7.0形式で読み込まないようにするため(Rails 7では一部のカラム型のデフォルト値が変更されている)
- PR: Dump the database schema containing the current Rails version by rafaelfranca · Pull Request #44286 · rails/rails
- Rails Guidesの更新: §2.15 Rails version is now included in the Active Record schema dump: Upgrading Ruby on Rails — Ruby on Rails Guides
🔗 Changelogに更新が記載されている機能
以下の機能はリリースノートの記載順です。
本記事では、GitHubリリースタグに掲載されているChangelogに対応するプルリクやコミットへのリンクを取り急ぎ貼りました。
🔗 Active Suport
ActiveSupport::EncryptedConfigurationをPsych 4互換になるよう修正
Stephen Sugden
- PR: atomic write race condition by dpep · Pull Request #44151 · rails/rails
- 週刊Railsウォッチ「先週の改修」関連エントリ:
atomic_writeの競合状態の挙動を修正
- 週刊Railsウォッチ「先週の改修」関連エントリ:
File.atomic_writeのエラーハンドリングを改善
Daniel Pepper
🔗 Active Model
- commit: Merge pull request #44322 from shioyama:fix_active_model_attribute_me… · rails/rails@61cf029
現在のモデルは、メソッド名が同じでも属性のbodyが異なることがあるため競合の原因になっていた。
:active_model_proxy名前空間を新たに追加することでこの問題を修正。
Chris Salzberg
🔗 Active Record
Ruby 2.7以降で
PG.connectキーワード引数のdeprecation warningが出ないよう修正
Nikita Vasilevsky
暗号化済みパラメータがオートフィルタから除外されていなかったのを修正
Mark Gangl
datetimeのprecisionが新しいデフォルト値6でダンプされるよう修正
Rafael Mendonça França
on_encrypted_attribute_declaredで暗号化済み属性が2回フィルタされないようを修正
Nikita Vasilevsky
データベーススキーマのダンプに現在のRailsバージョンを含めるようにした
#42297以降、
datetimeカラムのデフォルトのprecisionを6で生成するようになった。
このため、Rails 6.1から7.0にアップグレードするときにデータベーススキーマを読み込むと新しいprecision値が適用されてproductionのスキーマと一致しなくなる。
これを避けるために、スキーマダンプで新しいフォーマットを生成するときに以下のようにRailsのバージョンを含めるようにした。
ActiveRecord::Schema[7.0].define
Rails 6.1 -> 7.0アップグレードで
rails app:updateタスクを実行すると、スキーマバージョンが6.1に設定されるようになる。
Rafael Mendonça França
PostgreSQLのgenerated columnの式の解析方法を修正
fatkodima
- PR: abandon_results! after every multi statement batch by nvasilevski · Pull Request #44274 · rails/rails
- 週刊Railsウォッチ「先週の改修」関連エントリ:PostgreSQLとMySQLの修正1件ずつ
max_allowed_packetの値を超えるとフィクスチャのバルクinsertでMysql2::Error: Commands out of sync; you can't run this command nowエラーが発生する問題を修正
Nikita Vasilevsky
recordという名前のリレーションを持つ関連付けを保存するとエラーになる問題を修正
Dorian Marié
datetimeカラムのprecision値のMySQL::SchemaDumperの振る舞いを修正
y0t4
リフレクションのない関連付けでのエラーを改善
Nikolai
change_tableからcheck_constraintにオプションを渡せるよう修正
Frederick Cheung
🔗 Action View
- PR: Ensure preload_link_tag preloads modules correctly by ElMassimo · Pull Request #44198 · rails/rails
- 週刊Railsウォッチ「先週の改修」関連エントリ:
preload_link_tagがrel: 'modulepreload'を使うよう修正
- 週刊Railsウォッチ「先週の改修」関連エントリ:
preload_link_tagでJavaScriptモジュールが正しくプリロードするよう修正
Máximo Mussini
オブジェクトの
responseメソッドでstylesheet_link_tagなどのヘルパーを利用できなかった問題を修正
dark-panda
🔗 Active Storage
7.0.0で導入された、
DirectUploadsControllerにservice_nameを渡せる機能を元に戻す導入された変更によってRailsアプリケーションのアップグレードで多くの問題が発生したため、現在作業中の後方互換性の実装を進める間はこの機能を削除することにした。
Gannon McGibbon
Active StorageのJavaScriptアセットのプリコンパイルをオプトアウトできるようにした
jlestavel
🔗 Changelogに更新の記載がない機能
以下はChangelogには更新の記載がありません。
TechRachoではRubyやRailsの最新情報などの記事を平日に公開しています。TechRacho記事をいち早くお読みになりたい方はTwitterにて@techrachoのフォローをお願いします。また、タグやカテゴリごとにRSSフィードを購読することもできます(例:週刊Railsウォッチタグ)