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

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

Ruby on Rails 7.0.7がリリースされました。バグ修正や一部の改修の取り消しなどが含まれています。

英語版Changelogをまとめて見るにはGItHubのリリースタグ↓が便利です。v7.0.7タグの日付は日本時間の2023/08/10 09:02でした。

詳しくは以下のコミットリストをご覧ください。

🔗 更新の概要

本記事では、GitHubリリースタグに掲載されているChangelogに対応するプルリクやコミットへのリンクを取り急ぎ貼りました。

🔗 Active Support

Cache::NullStorewith_local_cacheブロックでread_multiを呼ぶとエラーになる問題を修正。
fatkodima

to_sに引数を渡さない場合に:defaultフォーマットを使わないよう修正。

Hartley McGuire

ActiveSupport::Inflector.humanize(nil)nil:NilClassNoMethodError: undefined method 'end_with?'を発生する問題を修正。

James Robinson

Enumerable#sumEnumerator#lazyに渡すブロック内で副作用がある場合の振る舞いが異なっていたのを修正。

fatkodima, Matthew Draper, Jonathan Hefner

互換性のないListen gemを利用中にEventedFileUpdateCheckerを使ったときのエラーメッセージを改善。

Hartley McGuire

🔗 Active Model

Error.full_messageのメッセージに:base属性を含めないようになった。

zzak

編集部注

以下のChangelogはmainブランチの#48698によるものですが、これはRails 7.0.7には含まれていません。原文の転記ミスと思われます。

Add a load hook for ActiveModel::Model (named active_model) to match the load hook for
ActiveRecord::Base and allow for overriding aspects of the ActiveModel::Model class.

Lewis Buckley

🔗 Active Record

enumを使う場合のmissingメソッドの機能を復元および修正。

paulreece

StatementCache::Substituteがシリアライズ型で正常に動かなくなっていたのを修正。

ywenc

アプリケーションがマルチデータベースの場合の:db_runtimeの通知ペイロードを修正。

Eileen M. Uchitelle

MySQL 8.0.16以降でCHECK制約を正しくダンプするよう修正。

Steve Hill

Enumerable#in_order_ofの振る舞いに合わせてActiveRecord::QueryMethods#in_order_ofnilも含めるよう修正。
たとえば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

削除されたレコードで#previously_new_record?trueを返していたのを修正。
修正前は、レコードを作成してから削除すると、#previously_new_record?trueを返していた。
この修正によって、レコードへのUPDATEやDELETEは変更と見なされ、#previously_new_record?falseを返すようになった。

Adrianna Chang

has_oneリレーションシップで、新しいレコードがバリデーションされる前に古いレコードを削除するbreaking changeを取り消す。
zzak

クエリで利用されるActive Recordインスタンスのサポートを修正。

7.0.5以降、クエリキャッシュに影響を与える変更を防ぐためにクエリ引数がdeep dupされるようになった。しかし、これによってActiveRecord::Baseのインスタンスが含まれている場合、主キーがクリアされるという逆効果も生じた。
これによってnoticed gemが壊れた。

Jean Boussier

🔗 Action View

render collection: @records, cache: trueがフラグメントを生の文字列としてキャッシュするよう修正。
修正前は、誤ってAction Viewのバッファとしてキャッシュされることがあった。

Jean Boussier

ネストしたfield_idfield_nameの添字値が二重エンコードされないよう修正。
field_idおよびfield_nameビューヘルパーメソッドにデフォルトのキーワード引数としてindex: @optionsを渡す。

Sean Doyle

🔗 Railties

デフォルトの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ウォッチタグ)

関連記事

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

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


CONTACT

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