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

Rails 7.0.5がリリースされました

Ruby on Rails 7.0.5がリリースされました。内容は主にバグ修正ですが変更量が割りと多くなっています。

英語版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

カラムを非文字列に変更するときのコレーション(照合順序)の扱いを修正。
Hartley McGuire

PostgreSQL::OID::Array#mapで配列の各要素に対してsubtype.mapを呼び出すよう修正。
Jonathan Hefner

rails db:prepare実行時にinternal_metadataに正しい環境が保存されるよう修正。
fatkodima

参考: 週刊Railsウォッチ20230131: rails db:prepareinternal_metadataに誤った環境が保存されていたのを修正

#coerceを実装したオブジェクトでActiveRecord::Relation#sumが非推奨警告を出さずに動作するよう修正。
Alex Ghiculescu

PostgreSQLやMySQLのキーワードと同じテーブル名を参照する外部キー名取り出しの挙動を修正。
fatkodima

disable_joinsでUUIDが使えなかった問題を修正。
Samuel Cochran

Active Recordのexplainでクエリ冒頭にコメントがあると動かなくなる問題を修正。
fatkodima

through関連付けのレコードが、中間の関連付けが読み込み済みだと正しくプリロードされない問題を修正。
Joshua Young

親子関連付けのwhere.missingwhere.associatedで追加されるテーブルエイリアスを削除する修正。
fatkodima

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

長いテーブル名でgroupcountの結果が正しくなくなるバグを修正。
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_forform_withFormBuilder#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

注釈

#47087は以下のセキュリティ修正にも含まれています。

Rails 7.0.4.2、6.1.7.2修正がリリースされました

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::BlobActionText::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ウォッチタグ)

関連記事

Rails 7.0.4、6.1.7、6.0.6がリリースされました

Rails 7.0.3、6.1.6、6.0.5、5.2.8がリリースされました

Rails 7.0.2がリリースされました

Rails 7.0.1がリリースされました


CONTACT

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