2015/01/27分のコミットです。
CHANGELOGへの追加はありませんでした。
Move flattening records added to an association farther out
activerecord/lib/active_record/associations/collection_association.rb
の修正です。
CollectionAssociation#concat
メソッドで、最初に引数のrecordsのflattenを行うよう修正しています。
flatten
された状態でメソッドに渡されるのを期待していたようなのですが、必ずflatten
した状態で渡される事が保証されてないので、
メソッドの中で行うよう対応したようです。
Test association was eager loaded, rather than reaching into internals
activerecord/test/cases/associations/belongs_to_associations_test.rb
、
activerecord/test/cases/inheritance_test.rb
の修正です。
associationがeager loadされたかどうかのテストを修正しています。
Improve consistency of counter caches updating in memory
ActieRecordのcounter cacheの修正です。
has manyしている側でcounter cacheの更新をオンメモでした場合に、counter cacheの値がおかしくなるバグがあったのを修正しています。
issueより。
ActiveRecord::Schema.define do create_table :users do |t| t.integer :comments_count, null: false, default: 0 end create_table :comments do |t| t.integer :user_id end end class User < ActiveRecord::Base has_many :comments end class Comment < ActiveRecord::Base belongs_to :user end user = User.create!(comments: [Comment.new]) puts "user.comments_count: #{user.comments_count}" puts "user.reload.comments_count: #{user.reload.comments_count}"
user = User.create!(comments: [Comment.new, Comment.new]) # Rails 4.1.9 user.comments_count: 0 user.reload.comments_count: 2 # Rails 4.2.0 user.comments_count: 1 user.reload.comments_count: 2
Change having_values
to use the WhereClause
class
ActiveRecordの修正です。
having_values
を使用していた箇所を、先日作成したWhereClause
クラスを使用するよう修正しています。
Relationクラスのリファクタリングの続きですかねえ。
Generate a query that makes sense when testing having clauses
activerecord/test/cases/relations_test.rb
の修正です。
having clausesのテストで、groupする対象をidに修正しています。元々指定していた値がおかしかったので修正したとの事。
Ensure the type caster object given to Arel is always marshallable
activerecord/lib/active_record/type_caster/connection.rb
の修正です。
Connection#initialize
メソッドの引数を"connection" -> "klass"に修正しています。
コミットログ見る感じだと、marshal出来るように、コネクション情報は保持しないようにして、という感じなんですかねえ…。
Go through normal where
logic in AssociationScope
activerecord/lib/active_record/associations/association_scope.rb
の修正です。
WhereClause
、PredicateBuilder
クラスと重複している処理、不要な処理等の削除を行っています。
activerecord/lib/active_record/relation/query_methods.rb
の修正です。
Relation#build_where
メソッドを削除しています。
Remove unused bind
and bind!
methods from Relation
activerecord/lib/active_record/relation/query_methods.rb
の修正です。
使用していないRelation#bind
、Relation#bind!
メソッドを削除しています。
ActieRecordのRelation関係のクラスの修正です。
Relation#bind_values=
メソッドを削除しています。
Move the from
bind logic to a FromClause
class
ActieRecordのRelation関係のクラスの修正です。
FromClause
クラスを新規に作成し、from
のバインドに関する処理をそちらのクラスにまとめています。
Update model_schema.rb [ci skip]
activerecord/lib/active_record/model_schema.rb
のdocの修正です。
table_name
、table_name=
メソッドのdocに現状の動作と異なる内容が説明されていた為、一通りばっさり削除しています。
ただ、消しすぎたようで、次のコミットで少し戻しています。
Restore useful documentation removed at
`activerecord/lib/active_record/model_schema.rbのdocの修正です。
table_name
メソッドのdocを一部戻しています。