Ruby on Rails 7.0.7がリリースされました。バグ修正や一部の改修の取り消しなどが含まれています。
Rails 7.0.7 has been released https://t.co/dLJ4hxsNoJ
— Ruby on Rails (@rails) August 10, 2023
英語版Changelogをまとめて見るにはGItHubのリリースタグ↓が便利です。v7.0.7
タグの日付は日本時間の2023/08/10 09:02でした。
詳しくは以下のコミットリストをご覧ください。
🔗 更新の概要
本記事では、GitHubリリースタグに掲載されているChangelogに対応するプルリクやコミットへのリンクを取り急ぎ貼りました。
🔗 Active Support
- 🔗 PR: Fix
Cache::NullStore
with local caching for repeated reads by fatkodima · Pull Request #48868 · rails/rails(45728のバックポート)
Cache::NullStore
のwith_local_cache
ブロックでread_multi
を呼ぶとエラーになる問題を修正。
fatkodima
- 🔗 PR: Fix to_s not using :default format with no args by skipkayhil · Pull Request #48555 · rails/rails
to_s
に引数を渡さない場合に:default
フォーマットを使わないよう修正。Hartley McGuire
ActiveSupport::Inflector.humanize(nil)
がnil:NilClass
でNoMethodError: undefined method 'end_with?'
を発生する問題を修正。James Robinson
Enumerable#sum
とEnumerator#lazy
に渡すブロック内で副作用がある場合の振る舞いが異なっていたのを修正。fatkodima, Matthew Draper, Jonathan Hefner
- 🔗 PR: [7-0-stable] Add lower bound to Listen gem requirement by skipkayhil · Pull Request #48762 · rails/rails(#48622と#47002のバックポート)
互換性のないListen gemを利用中に
EventedFileUpdateChecker
を使ったときのエラーメッセージを改善。Hartley McGuire
🔗 Active Model
Error.full_message
のメッセージに:base
属性を含めないようになった。zzak
🔗 Active Record
- 🔗 PR: Restores functionality to the missing method when using enums and fixes #48651 by paulreece · Pull Request #48738 · rails/rails
enumを使う場合の
missing
メソッドの機能を復元および修正。paulreece
- 🔗 PR: Fix
StatementCache::Substitute
with serialized type by ywenc · Pull Request #48765 · rails/rails
StatementCache::Substitute
がシリアライズ型で正常に動かなくなっていたのを修正。ywenc
- 🔗 PR: Remove connected? check from db_runtime payload by eileencodes · Pull Request #48708 · rails/rails
アプリケーションがマルチデータベースの場合の
:db_runtime
の通知ペイロードを修正。Eileen M. Uchitelle
- 🔗 PR: Correctly dump check constraints for MySQL 8.0.16+ by stevehill1981 · Pull Request #47851 · rails/rails
MySQL 8.0.16以降でCHECK制約を正しくダンプするよう修正。
Steve Hill
- PR: 🔗 Fix
ActiveRecord::QueryMethods#in_order_of
to work with nils by fatkodima · Pull Request #48886 · rails/rails
Enumerable#in_order_of
の振る舞いに合わせてActiveRecord::QueryMethods#in_order_of
にnil
も含めるよう修正。
たとえばPost.in_order_of(:title, [nil, "foo"])
にはタイトルがnil
のpostsを含められるようになり、Post.all.to_a.in_order_of(:title, [nil, "foo"])
と同様になった。fatkodima
#48413 "Fix autosave associations with validations added on :base of the associated objects."を取り消す。
この変更は、メッセージから
:base
属性を取り除くためのものだったが、これによってエラーが保存されるキーで多くの前提が壊れた。
zzak
- 🔗 PR: Fix
#previously_new_record?
on destroyed records by adrianna-chang-shopify · Pull Request #48796 · rails/rails
削除されたレコードで
#previously_new_record?
がtrue
を返していたのを修正。
修正前は、レコードを作成してから削除すると、#previously_new_record?
がtrue
を返していた。
この修正によって、レコードへのUPDATEやDELETEは変更と見なされ、#previously_new_record?
がfalse
を返すようになった。Adrianna Chang
- 🔗 PR: [7-0-stable] Revert singular association breaking changes by zzak · Pull Request #48809 · rails/rails
has_one
リレーションシップで、新しいレコードがバリデーションされる前に古いレコードを削除するbreaking changeを取り消す。
zzak
クエリで利用されるActive Recordインスタンスのサポートを修正。
7.0.5以降、クエリキャッシュに影響を与える変更を防ぐためにクエリ引数がdeep dupされるようになった。しかし、これによって
ActiveRecord::Base
のインスタンスが含まれている場合、主キーがクリアされるという逆効果も生じた。
これによってnoticed
gemが壊れた。Jean Boussier
🔗 Action View
- 🔗 PR: Fix Action View collection caching to store fragments as bare strings by casperisfine · Pull Request #48645 · rails/rails
render collection: @records, cache: true
がフラグメントを生の文字列としてキャッシュするよう修正。
修正前は、誤ってAction Viewのバッファとしてキャッシュされることがあった。Jean Boussier
ネストした
field_id
やfield_name
の添字値が二重エンコードされないよう修正。
field_id
およびfield_name
ビューヘルパーメソッドにデフォルトのキーワード引数としてindex: @options
を渡す。Sean Doyle
🔗 Railties
- 🔗 commit: Update default scaffold templates to set 303 (See Other) as status c… · rails/rails@5d1ad87
デフォルトのscaffoldテンプレートを更新。
XHRリクエスト(GETやPOSTを除く)に対するupdate
アクションで、リダイレクト時のステータスコードを303 (See Other)
に設定することで問題を回避する。
(問題の例:ブラウザが元のリクエストメソッドを用いてリダイレクトに追従しようとすると、PATCH/PUTが二重に発生する)Guillermo Iguaran
🔗 Changelogに更新の記載がない機能
以下はChangelogには更新の記載がありません。
- Action Pack
- Active Job
- Action Mailer
- Action Cable
- Active Storage
- Action Mailbox
- Action Text
TechRachoではRubyやRailsの最新情報などの記事を平日に公開しています。TechRacho記事をいち早くお読みになりたい方はTwitterにて@techrachoのフォローをお願いします。また、タグやカテゴリごとにRSSフィードを購読することもできます(例:週刊Railsウォッチタグ)
編集部注
以下のChangelogはmainブランチの#48698によるものですが、これはRails 7.0.7には含まれていません。原文の転記ミスと思われます。