2018/10/10分のコミットです。
CHANGELOGにのったコミットは以下の通りです。
Merge pull request #34117 from aergonaut/docs/ActiveRecord--Persistence-belongs_to_touch_method
activerecord/lib/active_record/persistence.rb
のdocの修正です。
ActiveRecord::Persistence#belongs_to_touch_method
メソッドにdocを追加しています。
Merge pull request #34105 from zvkemp/correct-asn-docs
rails guideのActive Support Instrumentation
、及び、activesupport/lib/active_support/notifications.rb
のdocの修正です。
unique IDについての説明が、event毎にuniqueなIDとなっていたのを、instrumenter毎にuniqueなIDである旨説明を修正しています。
Merge pull request #34081 from gmcgibbon/db_migrate_status_move
activerecord/lib/active_record/railties/databases.rake
、
activerecord/lib/active_record/tasks/database_tasks.rb
の修正です。
db:migrate:status
taskの実装がrakeファイル内に定義されていたのを、ActiveRecord::Tasks::DatabaseTasks.migrate_status
メソッドを新規に作成、そちらで実装を行うよう修正しています。
Merge pull request #34075 from hakusaro/guides-reference-leases
rails guideのContributing to Ruby on Rails
の修正です。
PRを更新したりsquashしたりした後に、ブランチを再pushする際のexampleで-f
オプションを使用していたのを、--force-with-lease
オプションを使用するよう修正しています。他の人がpushしていた場合に上書きしてしまうのを防ぐ為。
Merge pull request #34071 from y-yagi/skip_webpacker_install
railtiesの修正です。
rails new
コマンドにskip_webpack_install
オプションを追加しています。名前の通りで、webpacker:install
の実行をスキップするかどうかを指定する為のオプション。
Improve DELETE with JOIN handling to avoid subqueries if possible
activerecord/lib/arel/visitors/mysql.rb
、
activerecord/lib/arel/visitors/to_sql.rb
の修正です。
DELETE + JOINが含まれるqueryを実行する際に、可能ならサブクエリーの使用を避けるよう修正しています。
Refactor Arel visitor to use collect_nodes_for
as much as possible
activerecord/lib/arel/visitors/to_sql.rb
の修正です。
Arel visitorで独自に処理を行っていた箇所について、collect_nodes_for
メソッドを使用するようリファクタリングしています。
activerecord/lib/arel/visitors/mysql.rb
の修正です。
Visitors:: MySQL#visit_Arel_Nodes_Union
メソッド内のコードのインデントがおかしくなってしまっている箇所があったのを修正しています。
Call load_schema
before assert_no_queries
activerecord/test/cases/null_relation_test.rb
の修正です。
test_none_chainable
でassert_no_queries
を使用する前にload_schema
を呼び出すよう修正しています。where
実行時にschemaのload処理が行われ、assert_no_queries
がエラーになってしまうのを避ける為。
Merge pull request #34094 from christophemaximin/fix-activerecord-clearing-of-query-cache
Active Recordの修正です。
assocationに対するreload処理がownerに対するreload処理と挙動が異なっていた(ownerに対するreloadだとquery cacheのclear + 新しいレコードの取得だが、assocationはquery cacheがそのままだったりしていた)のを、全てquery cacheをclaer + 新しいレコードの取得になるよう修正しています。
Merge pull request #34122 from kamipo/generate_relation_methods
activerecord/lib/active_record/relation/delegation.rb
、
activerecord/lib/active_record/scoping/named.rb
の修正です。
scope定義時にnamed scopeへのdelegation methodsを生成するよう修正しています。
元々は、Relationのmethod_missing
が実行された際にdelegation methodsは生成されていました。が、それだと、superclassで定義されているのと同じ名前のnamed scope(e.g. Kernel.open
)が定義されていた場合、method_missing
が実行されず結果そのnamed scopeが呼ばれない、という問題があった為、定義時に処理を行うよう修正したようです。
Add allocations to template renderer subscription
actionview/lib/action_view/log_subscriber.rb
の修正です。
template rendering instrumentationでAllocations
の値を表示するよう修正しています。
Before:
Rendering posts/new.html.erb within layouts/application Rendered posts/_form.html.erb (9.7ms) Rendered posts/new.html.erb within layouts/application (10.9ms) Completed 200 OK in 902ms (Views: 890.8ms | ActiveRecord: 0.8ms)
After:
Rendering posts/new.html.erb within layouts/application Rendered posts/_form.html.erb (Duration: 7.1ms | Allocations: 6004) Rendered posts/new.html.erb within layouts/application (Duration: 8.3ms | Allocations: 6654) Completed 200 OK in 858ms (Views: 848.4ms | ActiveRecord: 0.4ms | Allocations: 1539564)
Allocations
の値はGC.stat :total_allocated_objects
から取得した値です。
Merge pull request #34109 from bogdanvlviv/follow-up-34064
actionpack/lib/action_dispatch/routing/route_set.rb
の修正です。
Merge pull request #33970 from rails/eager-url-helpersをrevertした、Merge pull request #34064 from schneems/schneems/revert-7f870a5ba2aa9177aa4a0e03a9d027928ba60e49の修正で、一部コードがrevert出来てなかった(削除漏れがあった)のを修正しています。