2017/08/18分のコミットです。
CHANGELOGへの追加はありませんでした。
Add missing test for Blob#purge
activestorage/test/models/blob_test.rb
の修正です。
不足していたBlob#purge
メソッドについてのテストを追加しています。
Add note about JSON/JSONB serialization changes
rails guideのA Guide for Upgrading Ruby on Rails
の修正です。
Upgrading from Rails 4.2 to Rails 5.0
にJSON/JSONBのserialize処理の変更内容についての説明を記載したChanges with JSON/JSONB serialization
の項を追加しています。
4.2系までは値をStringで持っていた場合、それがHashに変換されるようになっていたのですが、5.0以降はStringのまま扱われるようになりました。これ自体は意図的な挙動なのですが、この挙動変更に関するissueが多くあった為、Upgrading Guideに説明を追加するようにしています。
詳細はPostgres JSONB column is returned as string instead of hash in Rails 5 RC2 辺りを参照。
Merge pull request #30275 from msimonborg/deep_merge_patch
activesupport/lib/active_support/core_ext/hash/deep_merge.rb
の修正です。
Hash#deep_merge!
のりファクリングを行っています。
keyの重複チェックを独自ロジックで行っていたのを、Ruby標準のHash#merge!
にblockを渡す形で行うよう修正しています。
Add test cases for where.not
with polymorphic association
activerecord/test/cases/relation/where_test.rb
の修正です。
where.not
のpolymorphic associationを指定した場合のテストを追加しています。
元々は動作していなかったのですが、Refactor Active Record to let Arel manage bind paramsの対応の影響で動作するようになったので、テストだけを追加しています。
Restore to_sql
to return only SQL (#29945)
Active Recordの修正です。
Refactor Active Record to let Arel manage bind paramsでto_sql
のメソッドの挙動が変わった(sqlだけでなくbindsを返すようになった)のを、sqlだけを返すよう修正しています。
to_sql
はpublic APIなので、互換性の為。合わせてto_sql_and_binds
メソッドを追加し、bindsが必要な場合は左記メソッドを使用するようにしています。
Add test cases that class level destroy
, delete
, and update
are affected by scoping (#29997)
activerecord/test/cases/persistence_test.rb
の修正です。
class revelのdestroy
、delete
、及び、update
メソッドが`scopingの影響を受ける事を確認するテストを追加しています。
現状は上記挙動が仕様の為、挙動が意図せず変わってしまうのを防ぐ為にテストを追加しています。
Restore the ability that SQL with binds for insert
, update
, and delete
(#29944)
activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb
の修正です。
insert
、update
、delete
メソッドの引数にbindsを追加しています。
Refactor Active Record to let Arel manage bind paramsの対応でbinds引数が削除されたのですが、上記メソッドはpublic APIの為、下位互換の為に引数を戻しています。
Add deterministic sorting order for test_taking_with_a_number
activerecord/test/cases/associations/has_many_associations_test.rb
の修正です。
test_taking_with_a_number
でassociationを取得する際に、idでsortするよう修正しています。
sortしないと結果が不定になり、seedによってはテストが失敗してしまう為。
Improve migration/column_attributes_test.rb
(#25286)
activerecord/test/cases/migration/column_attributes_test.rb
の修正です。
test_unabstracted_database_dependent_types
がPostgresSQLの場合も実行されるよう修正、及び、SQLite3 でchange_column
に元のカラムと異なるprecision
、scale
を指定した場合のテストを追加しています。
Simplify ActiveModel::Errors#generate_message
activemodel/lib/active_model/errors.rb
の修正です。
ActiveModel::Errors#generate_message
メソッドのりファクリングとして、下記を行っています。
@base.class.respond_to?(:i18n_scope)
を一度だけ呼ぶよう修正@base.class.i18n_scope
が一度だけ呼ばれるよう修正- 不要な
flatten!
、compact
の呼び出しを削除