Ruby on Rails 7.0.5がリリースされました。内容は主にバグ修正ですが変更量が割りと多くなっています。
Rails 7.0.5 has been released https://t.co/pIvs3ACUZI
— Ruby on Rails (@rails) May 24, 2023
英語版Changelogをまとめて見るにはGItHubのリリースタグ↓が便利です。v7.0.5タグの日付は日本時間の2023/05/25 04:25でした。
詳しくは以下のコミットリストをご覧ください。
🔗 Changelogに更新が記載されている機能
本記事では、GitHubリリースタグに掲載されているChangelogに対応するプルリクやコミットへのリンクを取り急ぎ貼りました。Changelogに記載されていない変更もありますのでご注意ください。
🔗 Active Support
TimeWithZone
にキーワード引数を渡すとArgumentError
になる問題を修正。
Niklas Häusele
リリースノートChangelogより
🔗 Active Record
#attribute_changed?
の:from
オプションと:to
オプションを型キャストするよう修正。
Andrew Novoselac
column
が配列として渡されてそのカラムが存在しない場合のindex_exists?
の挙動を修正。
Eileen M. Uchitelle
PostgreSQLの
timestamptz
カラムでDate
オブジェクトを扱えるよう修正
Alex Ghiculescu
- PR: Fix collation for changing column to non-string by skipkayhil · Pull Request #46400 · rails/rails
カラムを非文字列に変更するときのコレーション(照合順序)の扱いを修正。
Hartley McGuire
- PR: Map through subtype in
PostgreSQL::OID::Array
by jonathanhefner · Pull Request #46375 · rails/rails
PostgreSQL::OID::Array#map
で配列の各要素に対してsubtype.map
を呼び出すよう修正。
Jonathan Hefner
rails db:prepare
実行時にinternal_metadata
に正しい環境が保存されるよう修正。
fatkodima
参考: 週刊Railsウォッチ20230131: rails db:prepare
でinternal_metadata
に誤った環境が保存されていたのを修正
#coerce
を実装したオブジェクトでActiveRecord::Relation#sum
が非推奨警告を出さずに動作するよう修正。
Alex Ghiculescu
PostgreSQLやMySQLのキーワードと同じテーブル名を参照する外部キー名取り出しの挙動を修正。
fatkodima
disable_joins
でUUIDが使えなかった問題を修正。
Samuel Cochran
Active Recordのexplainでクエリ冒頭にコメントがあると動かなくなる問題を修正。
fatkodima
through関連付けのレコードが、中間の関連付けが読み込み済みだと正しくプリロードされない問題を修正。
Joshua Young
親子関連付けの
where.missing
やwhere.associated
で追加されるテーブルエイリアスを削除する修正。
fatkodima
- PR: Fix
Enumerable#in_order_of
to preserve duplicates by fatkodima · Pull Request #47805 · rails/rails
Enumerable#in_order_of
で要素の重複が残る問題を修正。
fatkodima
MySQLアダプタで
auto_increment
が主キーに効かない問題を修正。
Eileen M. Uchitelle
Rails 5.2マイグレーションの
create_table
で作ったカラムをRails 6.1で再定義できない問題を修正。
fatkodima
PostgreSQLの仮想カラムがスキーマキャッシュで正しく扱われない問題を修正。
fatkodima
2つのテーブルをjoinしたときに両方に存在するカラムでグループ化計算がおかしくなる問題を修正。
fatkodima
バイナリカラムを用いるシリアライズ属性での
change_in_place?
変更検出誤りを修正。
Jean Boussier
長いテーブル名で
group
やcount
の結果が正しくなくなるバグを修正。
Shota Toguchi, Yusaku Ono
仮想
datetime
カラムでデフォルトの精度が誤ってnil
になっていたのを修正。この変更前は、通常の
datetime
カラムと同じデフォルトのprecision
が仮想datetime
カラムにはなく、以下の2つが誤って同等になっていた。t.virtual :name, type: datetime, as: "expression" t.virtual :name, type: datetime, precision: nil, as: "expression"
この変更によってデフォルトの
precision
探索が修正され、datetime
カラムが仮想と通常の両方でデフォルトのprecision
と一致するようになる。
Sam Bostock
クエリキャッシュから返される値が正しくない場合があるケースを修正。#46044を参照。
Aaron Patterson
🔗 Action View
form_for
やform_with
のFormBuilder#id
で検索されるidセットが期待と異なる問題を修正。
Matt Polito
テンプレート探索ですべてのロケールが利用できるように修正。
Ben Dilley
select
でグループ化またはネストしたコレクションを使う場合に、html
属性を子配列の末尾要素として含められるオプションを追加。<%= form.select :foo, [["North America", [["United States","US"],["Canada","CA"]], { disabled: "disabled" }]] %> # => <select><optgroup label="North America" disabled="disabled"><option value="US">United States</option><option value="CA">Canada</option></optgroup></select>
Chris Gunther
🔗 Action Pack
304 Not ModifiedレスポンスでCSPヘッダーを返さないよう修正。
Tobias Kraze
参考: 週刊Railsウォッチ20220920: 304 Not ModifiedレスポンスでCSPヘッダーを返さないよう修正
Flashミドルウェアが利用できない場合の
EtagWithFlash
の挙動を修正
fatkodima
参考: 週刊Railsウォッチ20220829: Flashミドルウェアが利用できない場合のEtagWithFlash
の挙動を修正
send_stream
のContent-Typeヘッダー値が常にString
インスタンスになるよう修正。
Elliot Crosby-McCullough
Selenium 4.8.0以降の
:capabilities
非推奨警告を:options
に変えることで解消
Ron Shinall
2文字の単一レベルTLD(トップレベルドメイン)で
domain: all
を指定した場合のcookieドメインを修正。
John Hawthorn
ActiveRecord::QueryLog
を使うときにコントローラやアクションやnamespaced_controller
でログが二重出力される問題を修正。
従来はconfig.active_record.query_log_tags
に渡す配列に:controller
や:namespaced_controller
や:action
が含まれていると項目が2回ログ出力されていた。
このバグは修正された。
Alex Ghiculescu
multipartリクエストでrackが発生する
EOFError
例外をrescue
するよう修正。
Nikita Vasilevsky
ActionDispatch::Cookies
のjsonシリアライザをrescue
してマーシャルダンプをクリアするよう修正。
この変更がないと、action_dispatch.cookies_serializer
が:json
に設定されていてアプリが:marshal
でシリアライズされたcookieを読み取ろうとすると、エラーになったときにcookieがクリアされず、アプリのユーザーがブラウザでcookieを手動削除しなければならなくなる(バグについての議論は#45127を参照)。
Nathan Bardoux
🔗 Active Job
delayed_jobが使う
display_name
がフェイルセーフになるよう修正。
codez
参考: 週刊Railsウォッチ20230328: delayed_jobが使うdisplay_name
をフェイルセーフにする
ActiveRecord::QueryLog
を使うときにジョブが二重出力される問題を修正。
従来はactive_record.query_log_tags
に渡す配列に:job
が含まれていると項目が2回ログ出力されていた。
このバグは修正された。
Alex Ghiculescu
🔗 Action Cable
Action Cableで、コネクション失敗時のRedisのpub/subリスナーを復旧するようになった。
Vladimir Dementyev
🔗 Action Text
永続化されていない
ActiveStorage::Blob
でActionText::Attachable#as_json
を呼び出すとエラーになる問題を修正。
Alexandre Ruban
🔗 Railties
Gemfileにpumaアプリサーバーを追加してtest/dummyを起動可能になるよう修正。
Donapieppo
参考: 週刊Railsウォッチ20221011: Gemfileにpumaアプリサーバーを追加してtest/dummyを起動可能にした
production環境でRailsコンソールのオートコンプリートがデフォルトで無効になった。
このデフォルト設定はIRB_USE_AUTOCOMPLETE=true
でオーバーライド可能。
Stan Lo
参考: 週刊Railsウォッチ20230125: production環境のRailsコンソールでIRBのオートコンプリートがデフォルトで無効になった
新規生成されたscaffoldコントローラの
destroy
アクションで303 See Other status
を送信するよう修正。
Tony Drake
🔗 Changelogに更新の記載がない機能
以下はChangelogには更新の記載がありません。
TechRachoではRubyやRailsの最新情報などの記事を平日に公開しています。TechRacho記事をいち早くお読みになりたい方はTwitterにて@techrachoのフォローをお願いします。また、タグやカテゴリごとにRSSフィードを購読することもできます(例:週刊Railsウォッチタグ)
注釈
#47087は以下のセキュリティ修正にも含まれています。