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

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

Ruby on Rails 6.1.4がリリースされました。

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

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

🔗 更新の概要

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

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

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

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

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

🔗 Action Cable

🔗 commit: RemoteConnection#disconnect: fix ArgumentError on ruby 3.0 · rails/rails@27ac308

Ruby 3.0でRemoteConnection#disconnectで発生するArgumentErrorを修正。
Vladislav
リリースノートChangelogより大意

🔗 Action Pack

🔗 PR: Ignore file fixtures on `db:fixtures:load` by kevinsjoberg · Pull Request #42153 · rails/rails

rake db:fixtures:loadでファイルのfixtureを無視するようにした。
Kevin Sjöberg
リリースノートChangelogより大意

🔗 PR: actionpack: Use an infinite sized queue in testing ActionController::Live by dylanahsmith · Pull Request #41609 · rails/rails

テストのbody buffer size limitを削除するとActionController::Live controllerがデッドロックする問題を修正。
Dylan Thacker-Smith
リリースノートChangelogより大意

🔗 PR: cause rails to correctly place optional path parameter booleans by HParker · Pull Request #42283 · rails/rails

オプションのパスパラメータのブーリアン値が適切に配置されるようにした。
従来は、パスのある部分でURLパラメータにfalseを指定すると、パスのその部分まで以下のようにインクルードされていた。

get "(/optional/:optional_id)/things" => "foo#foo", as: :things
things_path(optional_id: false) # => /things?optional_id=false

この修正によって、truefalseはオプショナルパスパラメータとして使われた場合にも同様に扱われるようになる。つまり以下のようになる。

get '(this/:my_bool)/that' as: :that

that_path(my_bool: true) # => `/this/true/that`
that_path(my_bool: false) # => `/this/false/that`

Adam Hess
リリースノートChangelogより大意

🔗 PR: Backport of "Allow 'private, no-store' Cache-Control header" by pixeltrix · Pull Request #42115 · rails/rails

private, no-store Cache-Controlヘッダーをサポート。
従来は'no-store'を指定すると他のディレクティブを指定できなかった。
Alex Smith
リリースノートChangelogより大意

🔗 Action Text

🔗 commit: Always render attachment partials as HTML with :html format inside tr… · rails/rails@d8ff47f

trixエディタ内では添付ファイルのパーシャルを常に:htmlでHTMLとしてレンダリングするようにした。
James Brooks
リリースノートChangelogより大意

🔗 Action View

🔗 PR: Pass default values for `translate` through I18n by jonathanhefner · Pull Request #40691 · rails/rails

translateヘルパーが、I18n.translateで訳文キーにならないdefault値を展開時に渡すようになった。
Jonathan Hefner
リリースノートChangelogより大意

🔗 PR: Don't attach UJS form submission handlers to Turbo forms by dhh · Pull Request #42476 · rails/rails

TurboのフォームにUJS形式の送信ハンドラを渡さないようになった。
David Heinemeier Hansson
リリースノートChangelogより大意

🔗 PR: Allow both `current_page?(url_hash)` and `current_page?(**url_hash)` on Ruby 2.7 · rails/rails@789c988

current_page?(url_hash)current_page?(**url_hash)が両方とも使えるように
Ryuta Kamizono
リリースノートChangelogより大意

🔗 Active Model

🔗 PR: Fixes #41521, ActiveModel::Dirty fails on to_json by anilmaurya · Pull Request #41677 · rails/rails

ActiveModel::Dirtyto_jsonを修正。
再帰につながるmutations_from_databaseをjsonから除外。
Anil Maurya
リリースノートChangelogより大意

🔗 Active Record

🔗 PR: Rollbacks for deadlocks by jamiemccarthy · Pull Request #30922 · rails/rails

ただしマージは以下で行われました。

ActiveRecord::TransactionRollbackErrorで失敗したトランザクションのロールバックを試行しないようにした。
Eileen M. Uchitelle
リリースノートChangelogより大意

🔗 PR: Fix nil pool_config in legacy connection handling by eileencodes · Pull Request #42579 · rails/rails

set_pool_configpool_configがnilの場合はエラーになるようにした。
Eileen M. Uchitelle
リリースノートChangelogより大意

🔗 commit: Fix compatibility with psych 4.x · rails/rails@255b5ff

psych >= 4との互換性を修正。
Psych 4.0.0からYAML.loadYAML.safe_loadのように振る舞うようになった。互換性を維持するため、Rails.application.config_forで可能な場合はYAML.unsafe_loadを使うようになった。
Jean Boussier
リリースノートChangelogより大意

🔗 PR: Support using replicas when using `rails dbconsole` by cthornton · Pull Request #42285 · rails/rails

rails dbconsole--include-replicasフラグをサポート。
Christopher Thornton
リリースノートChangelogより大意

🔗 PR: Restore connection pools after transactional tests by eugeneius · Pull Request #40384 · rails/rails

トランザクショナルなテストの後でコネクションプールをリストアするようになった。
Eugene Kenny
リリースノートChangelogより大意

🔗 PR:upsert_all fails cleanly for MySQL by coding-chimp · Pull Request #41628 · rails/rails

:unique_byを使った場合にMySQLでupsert_allがきれいに失敗するようになった。
Bastian Bartmann
リリースノートChangelogより大意

🔗 PR: Fix user-defined `self.default_scope` to respect table alias by kamipo · Pull Request #41892 · rails/rails

ユーザー定義のself.default_scopeがテーブルのエイリアスを扱うよう修正。
Ryuta Kamizono
リリースノートChangelogより大意

🔗 commit: Clear `@cache_keys` cache even when eager loading · rails/rails@7261f90

update_alldelete_alldestroy_allの後で@cache_keysキャッシュをクリアするようにした。
Ryuta Kamizono
リリースノートChangelogより大意

🔗 PR: Quote the arguments passed to the Contains/Overlaps Arel nodes by bradleypriest · Pull Request #41640 · rails/rails

Arel::Nodes::ContainsArel::Nodes::Overlapsquoted_nodeを使うよう変更して、Arel::PredicationsでPostgreSQLのarrayが正しく引用符で囲まれるようにした。
Bradley Priest
リリースノートChangelogより大意

🔗 PR: Fix `WhereClause#extract_attributes` to work it with a string where clause · rails/rails@dc3b116

where句にstringコンテンツがある場合のmergeを修正。
Ryuta Kamizono
リリースノートChangelogより大意

🔗 PR: Fix rollback of parent destruction with nested dependent:destroy by intrip · Pull Request #41602 · rails/rails

ネステッドなdependent: :destroyで親をdestroyしてもロールバックしていたのを修正。
Jacopo Beschi
リリースノートChangelogより大意

🔗 PR: Fix binds logging for "WHERE ... IN ..." statements by ricardotk002 · Pull Request #41068 · rails/rails

"WHERE ... IN ..."bindsログ出力を修正。
Ricardo Díaz
リリースノートChangelogより大意

🔗 PR: Handle false in relation strict loading checks by eileencodes · Pull Request #41688 · rails/rails

リレーションでのstrict loadingチェックでfalseを扱えるようにした。
従来は、モデルでstrict loadingがtrueに設定されていてかつリレーションでstrict_loadingがfalseに設定されていると、strict loadingでraiseまたはwarningを出力するかどうかを決定するときにこのfalseが反映されなかった。

class Dog < ActiveRecord::Base
  self.strict_loading_by_default = true

  has_many :treats, strict_loading: false
end

上の例では、strict_loadingをfalseにしても引き続きdog.treatsがraiseされる。これはActive Storageへの影響の方が大きいバグなので、#41461に代わるこのプルリクを作った。この挙動には少々驚かされたので、すべてのアプリケーションでこの問題を修正する必要がある。テストは#41461のものを使い、#41453を参考に少し手を加えた。
Eileen M. Uchitelle, Radamés Roriz
リリースノートChangelogより大意

🔗 PR: Fix numericality validator without precision in Active Record by kamipo · Pull Request #41672 · rails/rails

precisionがない場合のnumericalityバリデーションを修正。
Ryuta Kamizono
リリースノートChangelogより大意

🔗 PR: Fix aggregate attribute on Enum types by kamipo · Pull Request #41613 · rails/rails

Enum型の属性aggregationを修正。
Ryuta Kamizono
リリースノートChangelogより大意

🔗 PR: Fix CREATE INDEX statement generation for PostgreSQL by eltongo · Pull Request #41490 · rails/rails

PostgreSQLでのCREATE INDEXステートメント生成を修正。
eltongo
リリースノートChangelogより大意

🔗 PR: Should not change serializable value for the enum attribute by kamipo · Pull Request #41486 · rails/rails

enum属性に文字列の値を配列で渡したときのwhere句の挙動を修正。
Ryuta Kamizono
リリースノートChangelogより大意

🔗 PR: Fix `unprepared_statement` to work it when nesting by kamipo · Pull Request #41423 · rails/rails

unprepared_statementがネストで動くよう修正。
Ryuta Kamizono
リリースノートChangelogより大意

🔗 Active Storage

🔗 PR: ActiveStorage: Allow the parameters sent to ffmpeg to be configurable by brendon · Pull Request #42472 · rails/rails

動画プレビュー画像生成用にffmpegに渡されるパラメータがconfig.active_storage.video_preview_argumentsでコンフィグ可能になった。
Brendon Muir
リリースノートChangelogより大意

🔗 PR: Fix Active Storage update task when running in an engine by jmalcic · Pull Request #41199 · rails/rails

Active Storageがエンジン内で実行されているときの更新タスクを修正。
Justin Malčić
リリースノートChangelogより大意

🔗 PR: Active Storage: don't crash if mini_mime doesn't recognize content_type by ghiculescu · Pull Request #42225 · rails/rails

MIMEタイプが認識されない場合にエラーをraiseしないようになった。
Alex Ghiculescu
リリースノートChangelogより大意

🔗 commit: Active Storage: raise PreviewError when a preview cannot be generated · rails/rails@547645a

プレビューアでプレビュー画像を生成できない場合にActiveStorage::PreviewErrorをraiseするようになった。
Alex Robbin
リリースノートChangelogより大意

🔗 commit: Active Storage representations: respond with 404 given invalid variation key · rails/rails@7bcbb1c

representationvariation_keyが無効の場合にレスポンス404を返すようになった。
George Claghorn
リリースノートChangelogより大意

🔗 commit: Active Storage: `Blob` creation shouldn't crash if no service selected · rails/rails@27bee74

サービスが未選択の場合にblob作成がクラッシュしないようになった。
Alex Ghiculescu
リリースノートChangelogより大意

🔗 Active Support

🔗 PR: MemCacheStore: always convert underlying values into an `Entry` by ghiculescu · Pull Request #42559 · rails/rails

MemCacheStore:で(falseを含む)任意の背後の値をEntryに変換するようになった。
#42559も参照。
Alex Ghiculescu
リリースノートChangelogより大意

🔗 PR: Use BigDecimal compatible operation in NumberToRoundedConverter by federicoaldunate · Pull Request #42316 · rails/rails

number_with_precisionBigDecimal値が巨大な場合のバグを修正。
Federico Aldunate, Zachary Scott
リリースノートChangelogより大意

🔗 commit: secure_compare: Check byte size instead of length · rails/rails@a215e47

secure_comparelengthではなくbytesizeを比較するよう修正。
Tietew
リリースノートChangelogより大意

🔗 PR: Fix `Time.at` to not lose `in` option by kamipo · Pull Request #41592 · rails/rails

Time.at:inオプションを失わないよう修正。
Ryuta Kamizono
リリースノートChangelogより大意

🔗 PR: Require a path for `config.cache_store = :file_store` by ghiculescu · Pull Request #41522 · rails/rails

config.cache_store = :file_storeへのパスを必須にした。
Alex Ghiculescu
リリースノートChangelogより大意

🔗 commit: Avoid having to store complex object in the default translation file · rails/rails@3eb546e

デフォルトの訳文ファイルに複雑なオブジェクトを保存しなくてもいいようにした。
Rafael Mendonça França
リリースノートChangelogより大意

🔗 Railties

🔗 commit: Fix compatibility with psych 4.x · rails/rails@255b5ff

psych >= 4との互換性を修正。
Psych 4.0.0からYAML.loadYAML.safe_loadのように振る舞うようになった。互換性を維持するため、Rails.application.config_forで可能な場合はYAML.unsafe_loadを使うようになった。
Jean Boussier
リリースノートChangelogより大意

🔗 commit: Ensure `Rails.application.config_for` always cast hashes to `ActiveSu… · rails/rails@e4bf943

Rails.application.config_forが常にハッシュをActiveSupport::OrderedOptionsにキャストするようにした。
Jean Boussier
リリースノートChangelogより大意

🔗 PR: Fix create migration generator with `--pretend` option by euxx · Pull Request #41255 · rails/rails

マイグレーションに--pretendオプションを付けたときに正しく生成されるよう修正。
euxx
リリースノートChangelogより大意


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

関連記事

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


CONTACT

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