Ruby on Rails 6.1.4がリリースされました。
Rails 6.1.4 has been released! https://t.co/Wm5yRkWdvr
— Ruby on Rails (@rails) June 24, 2021
英語版Changelogをまとめて見るにはGItHubのリリースタグ↓が便利です。v6.1.4
タグの日付は日本時間の2021/06/25 05:23でした。
- リリースタグ: Release 6.1.4 · rails/rails
詳しくは以下のコミットリストをご覧ください。
更新の概要
Changelogに更新が記載されている機能
以下の機能の順序はリリースノートの記載順に従っています。
- Action Cable
- Action Pack
- Action Text
- Action View
- Active Model
- Active Record
- Active Storage
- Active Support
- Railties
本記事では、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: Remove yaml file fixtures from regular fixtures by gmcgibbon · Pull Request #36884 · rails/rails
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より大意
- 関連issue: Testing an ActionController::Live controller leads to a deadlock · Issue #31813 · rails/rails
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
この修正によって、
true
やfalse
はオプショナルパスパラメータとして使われた場合にも同様に扱われるようになる。つまり以下のようになる。
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より大意
- 関連PR: Allow ‘private, no-store’ Cache-Control header by ags · Pull Request #41735 · rails/rails
- 週刊Railsウォッチ「先週の改修」関連エントリ: Cache-Controlヘッダーに
private, no-store
を指定できるようになった
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より大意
- 関連issue: ActionView::Helpers::TranslationHelper#translate doesn’t support Hash as default translation · Issue #26032 · rails/rails
- 関連issue: ActionView::Helpers::TranslationHelper.translate no longer executes Proc as default option in Rails 6.1 · Issue #41277 · rails/rails
- 関連issue: ActionView::Helpers::TranslationHelper.translate doesn’t replace aliases in defaults · Issue #41380 · rails/rails
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::Dirty
のto_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_config
でpool_config
がnilの場合はエラーになるようにした。
Eileen M. Uchitelle
リリースノートChangelogより大意
- 関連issue: undefined method `pool when running a test with multiple databases on Rails 6.1 · Issue #41549 · rails/rails
- 関連PR: Raise an error if `pool_config` is `nil` in `set_pool_config` by eileencodes · Pull Request #42537 · rails/rails
commit: Fix compatibility with psych 4.x · rails/rails@255b5ff
psych >= 4との互換性を修正。
Psych 4.0.0からYAML.load
がYAML.safe_load
のように振る舞うようになった。互換性を維持するため、Rails.application.config_for
で可能な場合はYAML.unsafe_load
を使うようになった。
Jean Boussier
リリースノートChangelogより大意
- 関連PR: Use Psych.safe_load by default by tenderlove · Pull Request #487 · ruby/psych
- 週刊Railsウォッチ「先週の改修」関連エントリ: Psych gemにbreaking change
PR: Support using replicas when using `rails dbconsole` by cthornton · Pull Request #42285 · rails/rails
rails dbconsole
で--include-replicas
フラグをサポート。
Christopher Thornton
リリースノートChangelogより大意
- 関連PR: Use DatabaseConfig objects in dbconsole by eileencodes · Pull Request #37443 · rails/rails
- 週刊Railsウォッチ「先週の改修」関連エントリ:
rails dbconsole
でマルチDBのreplicaをサポート
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_all
、delete_all
、destroy_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::Contains
やArel::Nodes::Overlaps
でquoted_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 numericality equality validation on floats by gmcgibbon · Pull Request #32852 · rails/rails
- 週刊Railsウォッチ「先週の改修」関連エントリ: Active Recordでprecisionなしのnumericalityバリデーションを修正
PR: Fix aggregate attribute on Enum types by kamipo · Pull Request #41613 · rails/rails
Enum型の属性aggregationを修正。
Ryuta Kamizono
リリースノートChangelogより大意
- 関連issue: Active Record Calculations on Enum breaking change in 6.1.3 · Issue #41600 · rails/rails
- 週刊Railsウォッチ「先週の改修」関連エントリ: Enum型の属性aggregationを修正
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: ActiveStorage: Allow the parameters sent to `ffmpeg` to be configurable by brendon · Pull Request #42471 · rails/rails
- 関連PR: Use FFmpeg scene detection for video previews by jonathanhefner · Pull Request #39096 · rails/rails
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
representation
でvariation_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_precision
でBigDecimal
値が巨大な場合のバグを修正。
Federico Aldunate, Zachary Scott
リリースノートChangelogより大意
commit: secure_compare: Check byte size instead of length · rails/rails@a215e47
secure_compare
でlength
ではなく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.load
がYAML.safe_load
のように振る舞うようになった。互換性を維持するため、Rails.application.config_for
で可能な場合はYAML.unsafe_load
を使うようになった。
Jean Boussier
リリースノートChangelogより大意
- 関連PR: Use Psych.safe_load by default by tenderlove · Pull Request #487 · ruby/psych
- 週刊Railsウォッチ「先週の改修」関連エントリ: Psych gemにbreaking change
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より大意
- 週刊Railsウォッチ「先週の改修」関連エントリ: マイグレーション生成の
--pretend
オプションのエラーを修正
関連記事
The post Rails 6.1.4がリリースされました first appeared on TechRacho.
TechRachoではRubyやRailsの最新情報などの記事を平日に公開しています。TechRacho記事をいち早くお読みになりたい方はTwitterにて@techrachoのフォローをお願いします。また、タグやカテゴリごとにRSSフィードを購読することもできます(例:週刊Railsウォッチタグ)