2021/06/16分のコミットです。
CHANGELOGにのったコミットは以下の通りです。
- The MySQL adapter now cast numbers and booleans bind parameters to to string for safety reasons.
- Disable automatic write protection on replicas.
activestorage/CHANGELOG.md
- The ActiveStorage video previewer will now use scene change detection to generate better preview images (rather than the previous default of using the first frame of the video).
- The parameters sent to
ffmpeg
for generating a video preview image are now configurable underconfig.active_storage.video_preview_arguments
.
Revert "Run ActiveRecord -> ActiveJob integration tests in CI"
Active Record + Active Jobのintegration testsがCIで実行されないようになっていたのを、実行されるよう修正した、Run ActiveRecord -> ActiveJob integration tests in CIをRevertしています。
Active Recordと同じプロセスでActive Jobのテストを実行すると想定外の動作になってしまう可能性がある為。
Don't attach UJS form submission handlers to Turbo forms (#42476)
actionview/app/assets/javascripts/rails-ujs.coffee
の修正です。
rails-ujsでTurbo用のformはattachしないよう修正しています。Turbo側で管理しているformについて、rails-ujsで処理が行われてしまうと想定通りの挙動にならない為。
Fix deprecation in railties maintain_test_schema
activerecord/lib/active_record/migration.rb
の修正です。
railties/test_help
をrequireした際にmaintain_test_schema
に関するdeprecate warningが表示されないよう、ActiveRecord.maintain_test_schema
を使用するよう修正しています。
Quick fix for the maintain_test_schema
load order issue
activerecord/lib/active_record/core.rb
、
activerecord/lib/active_record/migration.rb
の修正です。
configのload orderの問題により、ActiveRecord.maintain_test_schema
は現在正しく動作しない為、各箇所でActiveRecord::Base.maintain_test_schema
を使用するよう修正しています。
Move maintain_test_schema temporarily back to Core
activerecord/lib/active_record.rb
、
activerecord/lib/active_record/core.rb
の修正です。
先の対応のフォローアップとして、ActiveRecord.maintain_test_schema
は削除し、ActiveRecord::Base.maintain_test_schema
だけ使えるよう修正しています。
Merge pull request #42486 from kuroponzu/add_space_activesupport_lib_active_support_digest
activesupport/lib/active_support/digest.rb
の修正です。
class <<self
-> class << self
に修正しています。
Mysql adapters: improve security of untyped bound values
Active Recordの修正です。
MySQL adapterで、bind parametersにnumber、及び、booleanが指定された場合に、stringに変換するよう修正しています。
User.where("login_token = ?", 0).first # before # => SELECT * FROM `users` WHERE `login_token` = 0 LIMIT 1; # after # => SELECT * FROM `users` WHERE `login_token` = '0' LIMIT 1;
number、booleanのままだと、stringがcastされてしまい、想定外にtrueと評価されてしまう可能性がある(例えば、"foo" = 0
のような場合、"foo"が0
にcastされてしまいtrueになる)為。
Improve ActiveStorage 'Linking to Files' section in guides [ci skip]
rails guideのActive Storage Overview
の修正です。
Linking to Files
の項について、言い回しや外部リンクの修正等を行っています。
Strict loading cascade down to middle records
activerecord/lib/active_record/associations/preloader/association.rb
、
activerecord/lib/active_record/associations/preloader/through_association.rb
の修正です。
through associationsにstrict loadingの指定が伝搬するよう修正しています。
Set Active Record configurations on after_initialize
Active Recordの修正です。
Active Recordのconfigurationsの指定をafter_initialize
で行うよう修正しています。initializerでconfig.active_record
の値を指定出来るようにする為。合わせて、maintain_test_schema
をActiveRecord
のclass accessrに戻しています。
Disable automatic write protection on replicas
Active Recordの修正です。
自動で行われたていたreplicaへの書き込み防止処理を行わないよう修正しています。Railsレベルでの書き込み防止処理は正確に行えず、本来実行出来ても良いSQLが実行出来ない、というような事がちょいちょい発生してしまった為。書き込み防止はDBレベルの設定で行ってね、というスタンスになっています。
Merge pull request #42487 from GuillaumeWrobel/patch-1
rails guideのWebpacker
の修正です。
app/javascript/packs
をapp/javascripts/packs
にタイポしていたのを修正しています。
Merge pull request #42484 from brunvez/correct_preload_docs
activerecord/lib/active_record/associations/preloader.rb
のdocの修正です。
associations
オプションについて説明している箇所で、オプションについての参照先のドキュメントの指定が誤っていたのを修正しています。
Merge pull request #42480 from p8/guides/activerecord-queries-add-and
rails guideのActive Record Query Interface
の修正です。
AND conditionsを生成する方法について説明したAND Conditions
の項を追加しています。
Add space between "ActiveStorage" in documentation [ci skip]
rails guideのActive Storage Overview
の修正です。
ActiveStorage
-> Active Storage
に修正しています。
Merge pull request #42471 from brendon/ffmpeg-options
Active Storageの修正です。
videoのpreivew生成処理で、first frameを使用していたのをscene change detectionを使用するよう修正しています。合わせて、preview生成処理で指定するオプションが固定だったのを、config(config.active_storage.video_preview_arguments
)で指定出来るよう修正しています。