2017/03/20分のコミットです。
CHANGELOGにのったコミットは以下の通りです。
Merge pull request #28475 from y-yagi/correctly_check_whether_key_is_defined
railties/lib/rails/application/configuration.rb
の修正です。
Merge pull request #28469 from matthewd/new-new-defaultsで追加された、version-compatible configの設定処理(load_defaults
)のチェック処理が正しく動作しないバグがあったのを修正しています。
Fix warning: character class has duplicated range
railties/test/generators/encrypted_secrets_generator_test.rb
の修正です。
encrypted secretのテストでRubyのwarning(warning: character class has duplicated range: /[\w\d]+/
)が出ていたのを、正規表現を修正して対応しています。
Fix changelog entry about transaction error classes [ci skip]
activerecord/CHANGELOG.md
の修正です。
DBでtransaction serialization failures、又は、deadlocksが発生した時にraiseする為に、ActiveRecord::TransactionSerializationError
を追加した、というエントリーがあったのですが、その後別の対応(Introduce new ActiveRecord transaction error classesによりTransactionSerializationError
クラスは削除されてしまったので、エントリーの内容を調整しています。
Merge pull request #28479 from kamipo/evaluate_default_block_only_when_necessary
Active Recordの修正です。
二つの異なるコミットが一つのPRに混ざっています。
まずひとつ目は、activerecord/lib/active_record/relation/delegation.rb
の修正です。ActiveRecord::Relation
がrecords
にdelegateするメソッドの一覧にuniq
を追加しています。
ActiveRecord::Relation
はEnumerableをincludeしているものの、Enumerable#uniqはRuby 2.4で追加された為、明示的にdelegateしないと、Ruby 2.3以下で
Relationに対して
uniq`メソッドを呼び出すとエラーになってしまう為。
もうひとつはactiverecord/lib/active_record/associations/belongs_to_association.rb
、
activerecord/lib/active_record/associations/builder/belongs_to.rb
の修正です。
BelongsTo.add_default_callbacks
メソッドで必ずinstance_exec
メソッドを呼び出すようになっていたのを、belongs_to
メソッドにblockが渡された場合のみinstance_exec
メソッドを呼び出すよう修正しています。
Add app:update
task to engines
railtiesの修正です。
rails engineでもapp:update
タスクを使用出来るよう修正しています。挙動はrails applicationのapp:update
タスクと同じ。
Fix extension method with dirty target in has_many associations
Active Recordの修正です。
has_many associationsのextensionに指定したmethodでdirty targetが取得出来ないバグがあったのを修正しています。
class Post < ApplcationRecord has_many :comments do def with_content(content) self.detect { |comment| comment.body == content } end end end
posts(:welcome).comments.build(body: "New comment") posts(:welcome).comments.with_content("New comment") # => ここで上記でbuildしたオブジェクトが取得出来なかった
Remove duplicated columns
definition
activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb
、
activerecord/lib/active_record/connection_adapters/abstract_adapter.rb
の修正です。
重複していたcolumns
メソッドの定義を一つにまとめています。