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_name
paramを渡す機能が削除された - 新機能: データベーススキーマに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ウォッチタグ)