2015/10/31分のコミットです。
CHANGELOGにのったコミットは以下の通りです。
Merge pull request #12071 from Crunch09/outer_joins
Active Recordの修正です。
ActiveRecord::Relation
にleft_outer_joins
メソッドを追加しています。
User.left_outer_joins(:posts) # => SELECT "users".* FROM "users" LEFT OUTER JOIN "posts" ON "posts"."user_id" = "users"."id"
後ほど、left_outer_joins
のaliasとしてleft_joins
が追加されており、User.left_joins(:posts)
という書き方も出来るようになっています。
Merge pull request #11872 from AvnerCohen/log_namespace
activesupport/lib/active_support/cache.rb
の修正です。
cacheをfetchした際に出力するログのkeyの値を、namespaceを使用している場合はnamespace付きの値を出力するよう修正しています。
Alias left_joins to left_outer_joins
Active Recordの修正です。
left_outer_joins
のaliasとして、left_joins
を追加しています。
Fix test failures caused by #12071
activerecord/test/cases/associations/left_outer_join_association_test.rb
の修正です。
ActiveRecord::Relation
にleft_outer_joins
メソッドを追加した対応のテストが時折コケてしまっていたのを対応しています。
一部抜粋。
def test_construct_finder_sql_does_not_table_name_collide_on_duplicate_associations assert_nothing_raised do - sql = capture_sql do + queries = capture_sql do Person.left_outer_joins(:agents => {:agents => :agents}) .left_outer_joins(:agents => {:agents => {:primary_contact => :agents}}).to_a - end.first - assert_match(/agents_people_4/i, sql) + end + assert queries.any? { |sql| /agents_people_4/i =~ sql } end end
left_outer_joins
メソッドを使用した場合に実際に生成されるSQLについてのテストで、生成されるSQLは一つだけである前提にテストコードを書いていたのですが、
実行タイミングによってはschemaの情報も含まれてしまい、テストがコケてしまっていたようす。
Use advisory locks to prevent concurrent migrations
Active Recordの修正です。
migrationを実行する際、advisory locksを使用してmigrationが同時に実行されないよう対応を追加しています。
そもそも同時にmigrationを実行する、というのがどういう時なのかわからなかったのですが、元となったissue(Running multiple migrations simultaneously can cause race conditions (on Postgres, probably on others) · Issue #22092 · rails/rails)を見る限り、AWS Opsworksを使っている時なんですねえ。
activerecord/test/cases/migration_test.rb
の修正です。
advisory lockのテストで、lock待ちをするのにsleep
を使用していたのを、Concurrent::CountDownLatch
クラスを使用するよう修正しています。
rails/application: allow passing an env to config_for
railties/lib/rails/application.rb
の修正です。
config_for
メソッドに、envを指定出来るよう対応しています。
config_for('custom', env: 'production')
Merge pull request #21251 from rodzyn/more_param_parser_tests
actionpack/test/dispatch/request/json_params_parsing_test.rb
の修正です。
CONTENT_TYPE
がapplication/vnd.api+json
の場合のテストを追加しています。
activesupport/test/core_ext/hash_ext_test.rb
の修正です。
不要な空行を削除しています。
Add tasks to automatize CHANGELOG headers
tasks/release.rb
の修正です。
CHANGELOGの先頭にリリースされたRailsのバージョンと日付を追加する為のtaskを追加しています。
## Rails 4.2.5.rc1 (October 30, 2015) ## (↑の部分) * Set `scope.reordering_value` to `true` if :reordering values are specified. Fixes #21886.
Rails 4.2.5.rc1がリリース用ですかねえ。
split process
from mailer instantiation
actionmailer/lib/action_mailer/base.rb
の修正です。
ActionMailer::Base.new
メソッドで、process
メソッドを呼ばないよう修正しています。
mailer objectの生成時に問題が起きないようにする為のようです。
minor formatting changes [ci skip]
activerecord/CHANGELOG.md
の修正です。
改行が無くてコードブロックが正しく表示されない箇所があったので改行を追加、及び、コメント行の先頭に#
を追加しています。