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

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

Ruby on Rails 6.0.4がリリースされました。バグ修正が主で、セキュリティ修正緊急のセキュリティ修正は含まれていません。

英語版Changelogをまとめて見るにはGItHubのリリースタグ↓が便利ですv6.0.4タグの日付は日本時間の6/16 06:21でした。

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

🔗 更新の概要

🔗 Changelogに更新が記載されている機能

以下の機能の順序はリリースノートの記載順に従っています。

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

🔗 Changelogに更新の記載がない機能

以下はChangelogには更新の記載がありません。

Action Pack

Base64 strict-encoded CSRFトークンのWeb安全性は本質的ではないため、取り扱いが困難。たとえば、クライアントが読めるcookieにCSRFトークンを入れてブラウザに送信するという一般的な方法は、そのままでは正しく機能しない。値をURLエンコードおよびデコードして、転送に耐えられるようにする必要がある。
Rails 6.1ではBase64 urlsafe-encoded CSRFを生成する。このトークンの転送は本質的に安全。バリデーションでは、urlsafeトークンの他に、後方互換性のためにstrict-encodedトークンも受け付ける。
Scott Blum, Étienne Barrié
リリースノートChangelogより大意


action_dispatch.use_cookies_with_metadataを有効にしたときに、署名済みおよび暗号化済みcookieの値にfalseを保存できるように修正。
Rolandas Barysas
リリースノートChangelogより大意

🔗 Action View

SanitizeHelper.sanitized_allowed_attributesSanitizeHelper.sanitized_allowed_tagssafe_list_sanitizerのクラスメソッドを呼び出すよう修正。
Taufiq Muhammadi
リリースノートChangelogより大意

🔗 Active Record

not_で始まるenum要素のwarningを、not_なしで始まるenum要素が存在してコンフリクトする場合にのみ表示するよう修正。
Alex Ghiculescu
リリースノートChangelogより大意


autosave済みのhas_one関連付けに対応する関連付けが読み込まれていない場合に読み込むよう修正。
Steven Weber
リリースノートChangelogより大意


table_nameが変更されている場合にstatementキャッシュをリセットするよう修正。
Ryuta Kamizono
リリースノートChangelogより大意


masterブランチの型キャストはかなり向上しているので、よく使われる型ではあまり問題にならないが、厳密に言えばeager loadingは(find_by_sqlでもやっているように)データベースのカラム型を尊重すべき。
Ryuta Kamizono
同PRより大意


コレクション関連付けが複数回autosaveされないよう修正。
Eugene Kenny
リリースノートChangelogより大意


insert_all:unique_byオプションが式インデックスで使われたときの問題を修正。
ActiveRecord::Persistence.insert_alActiveRecord::Persistence.upsert_all:unique_byオプションが式インデックスの名前で使われるとエラーが発生した。:unique_byのフォーマッティング周りの振舞いをガードすることでこの問題が修正される。

# 使い方
create_table :books, id: :integer, force: true do |t|
  t.column :name, :string
  t.index "lower(name)", unique: true
end

Book.insert_all [{ name: "MyTest" }], unique_by: :index_books_on_lower_name

Austen Madden
リリースノートChangelogより大意


カスタムスコープを用いるポリモーフィック関連付けのプリロードを修正。
Ryuta Kamizono
リリースノートChangelogより大意


orメソッドにSQLコメント付きのリレーションを渡せるようになった。
Takumi Shotoku
リリースノートChangelogより大意


カウンタキャッシュと楽観的ロックのコンフリクトを解消。
Active Recordインスタンスのロックバージョンの更新は、カウンタキャッシュの更新後に行うこと。こうすることで、対応するデータベースレコードのlock_versionカラムとのパリティが以後のトランアクションで維持され、不要なActiveRecord::StaleObjectErrorを回避できる。
Aaron Lipman
リリースノートChangelogより大意


source/throughのスコープでjoinsが使われる場合のthrough関連付けの問題を修正。
Ryuta Kamizono
リリースノートChangelogより大意


through関連付けがincludespreloadでsourceスコープを扱うよう修正。
Ryuta Kamizono
リリースノートChangelogより大意


joinsの元の順序が維持されるようArelのjoinsのeager loadingを修正。
Ryuta Kamizono
リリースノートChangelogより大意


eager loadingとorderとlimit(またはoffset)したときのcountのGROUP BYを修正。
Ryuta Kamizono
リリースノートChangelogより大意


異なる関連付け間にまたがる複数のleft_joinsmergeしたときのleft_joinsの順序を修正。
Ryuta Kamizono
リリースノートChangelogより大意


MySQLのインデックス作成でテーブルのbulk変更時のインデックスコメントを維持するよう修正。
Ryuta Kamizono
リリースノートChangelogより大意


データベースで機能がサポートされていない場合はremove_foreign_key:validateオプションをチェックしないよう変更。
Ryuta Kamizono
リリースノートChangelogより大意


重複した"group by"フィールドを維持するよう集約の結果を修正。
Ryuta Kamizono
リリースノートChangelogより大意


プリロード使用時に重複したレコードを返さないよう修正。
Bogdan Gusiev
リリースノートChangelogより大意

🔗 Active Storage

Poppler PDFプレビューアがプレビュー画像をレンダリングするとき、元のドキュメントのmediaボックスではなくcropboxを使っていたため、印刷のマージンが隠されていた。この修正によって、MuPDFプレビューアと振舞いが一致する。
Vincent Robert
リリースノートChangelogより大意

🔗 Active Support

ActiveSupport::Cache::RedisCacheStoreがオプションをread_multiに渡さず、fetch_multi`が正しく動かなくなった問題を修正。
Rajesh Sharma
リリースノートChangelogより大意


with_optionsのミューテーションのリーク回避のため、オプションハッシュをコピーするよう修正。
Eugene Kenny
リリースノートChangelogより大意

🔗 Railties

rails testに渡す相対パスの末尾にスラッシュを付けられるようになった。
Eugene Kenny
リリースノートChangelogより大意


リクエストで未知のHTTPメソッドが使われた場合に405 Method Not Allowedを返すよう修正。
Loren Norman
リリースノートChangelogより大意


TechRachoではRubyやRailsの最新情報などの記事を平日に公開しています。TechRacho記事をいち早くお読みになりたい方はTwitterにて@techrachoのフォローをお願いします。また、タグやカテゴリごとにRSSフィードを購読することもできます(例:週刊Railsウォッチタグ)

関連記事

速報: Rails 6.1.1がリリースされました


CONTACT

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