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を避けるようにする為。