2018/10/05分のコミットです。
CHANGELOGへの追加はありませんでした。
Merge pull request #33938 from faucct/bugfix/preload_through_no_records
activerecord/lib/active_record/associations/preloader.rb
の修正です。
through associationsをeager loadする際、そのloadする先のrecordsが存在しない場合に、NoMethodError
でエラーになってしまうバグがあったのを修正しています。
failing test for eager loading
activerecord/test/cases/associations/cascaded_eager_loading_test.rb
の修正です。
先のeager loadに関する修正に関するテストを追加しています。
Restore preloaders_for_one
method
activerecord/lib/active_record/associations/preloader.rb
の修正です。
先のeager loadに関する修正で削除されてしまったpreloaders_for_one
メソッドを戻しています。
元々preloaders_for_one
メソッド用の長めのdocがあったのですが、eager loadの修正の際にpreloaders_for_one
メソッドが削除され、しかしdocはそのままになていて、結果そのdocは違うメソッドのdocになってしまっていました。が、その違うメソッドに対するdocとしては、元のdocの内容は適切では無いため、preloaders_for_one
メソッドを戻し元の通りの状態にしています。
Merge pull request #34064 from schneems/schneems/revert-7f870a5ba2aa9177aa4a0e03a9d027928ba60e49
routing helper moduleの構築について修正を行った、Merge pull request #33970 from rails/eager-url-helpersをrevertしています。
codetriage/codetriageやplataformatec/deviseがこの対応の影響で動作しなくなっている、という報告があった為。
Simplify the condition in prepare_update_statement
activerecord/lib/arel/visitors/mysql.rb
の修正です。
prepare_update_statement
メソッドで分岐処理のネストを減らすようリファクタリングしています。
Use assert_no_queries
not to ignore BEGIN/COMMIT queries
Active Recordのテストの修正です。
queryが実行されない事を確認するテストで、assert_queries(0)
を使用していたのを、assert_no_queries
を使用するよう修正しています。
元々、BEGIN/COMMITがqueryに含まれるのを避ける為にassert_queries(0)
を使用していたのですが、Omit BEGIN/COMMIT statements for empty transactionsで空のBEGIN/COMMITが実行される事は無くなった為、より厳密にチェック出来るようにする為にassert_no_queries
を使用するようにしています。
Remove ignore_none: false
to assert no queries more strictly
Active Recordのテストの修正です。
assert_no_queries
を使用する際に、ignore_none: false
オプションを指定していたのを削除しています。
これも先ほどのコミット同様、BEGIN/COMMITがカウントされるのを避ける為だったんのですが、今は不要の為。
Wrap custom id of a header attribute into \" in rails guides
guides/rails_guides/markdown/renderer.rb
の修正です。
rails guideでcustom header id(Heading IDs/Extended Syntax)を生成する際に、idを"
でクォートするよう修正しています。
Bugfix: ActiveSupport::EncryptedConfiguration reading of comment-only encrypted files (#34014)
activesupport/lib/active_support/encrypted_configuration.rb
の修正です。
コメントしか存在しないencryptedファイルを参照した際に、NoMethodError
がraiseされてしまうバグがあったのを修正しています。
Avoid webpacker:install
if unnecessary
railties/test/generators/app_generator_test.rb
の修正です。
load_defaults
メソッドに関するテストで、不要なwebpacker:install
taskを実行しないよう修正しています。
Don't use deprecated Module#parents
actionpack/lib/abstract_controller/railties/routes_helpers.rb
の修正です。
deprecateになっているModule#parents
を使用している箇所があったのを、Module#module_parents
を使用するよう修正しています。
Add retry_on/discard suggestions for common cases.
railties/lib/rails/generators/rails/app/templates/app/jobs/application_job.rb.tt
の修正です。
rails new
で生成するapplication_job.rb
にretry_on
、及び、discard_on
のexampleを記載するよう修正しています。
job generatorが生成するapplication_job.rb
には既にretry_on
、及び、discard_on
のexampleを記載済みで、同じ内容をrails new
で生成するファイルにも記載するようにしています。
Exercise stringify of database configurations
activerecord/test/cases/connection_adapters/connection_handler_test.rb
の修正です。
DatabaseConfigurations::HashConfig
が返すenv_name
やspec_name
がStringである事を確認するテストを追加しています。
Merge pull request #34068 from schneems/schneems/micro-optimize-try-nil
activesupport/lib/active_support/core_ext/object/try.rb
の修正です。
NilClass#try
メソッド及びtry!
メソッドの第一引数を明示的に指定するよう修正しています。
- def try(*args) + def try(method_name = nil, *args)
引数が一つしか無い場合にallocationを避けるようにする為。