diff options
author | Sean Griffin <sean@thoughtbot.com> | 2014-06-10 14:50:36 -0600 |
---|---|---|
committer | Sean Griffin <sean@thoughtbot.com> | 2014-06-10 14:52:14 -0600 |
commit | da3b4b61732ca4717c99e680ebaf2af43e67ca74 (patch) | |
tree | 2b9e8f452f4cecb2764f78f32f4e5b7139c0a8f1 | |
parent | 4d209b5daf0eba4c8d008e9d009d0576e04f40d1 (diff) | |
download | rails-da3b4b61732ca4717c99e680ebaf2af43e67ca74.tar.gz rails-da3b4b61732ca4717c99e680ebaf2af43e67ca74.tar.bz2 rails-da3b4b61732ca4717c99e680ebaf2af43e67ca74.zip |
No need to decorate columns twice
We never want result types to override column types, and
`decorate_columns` can only affect column types. No need to go through
the decoration multiple times, we can just exclude the column types from
the result types instead.
-rw-r--r-- | activerecord/lib/active_record/persistence.rb | 1 | ||||
-rw-r--r-- | activerecord/lib/active_record/querying.rb | 2 |
2 files changed, 1 insertions, 2 deletions
diff --git a/activerecord/lib/active_record/persistence.rb b/activerecord/lib/active_record/persistence.rb index 525289c270..3ab8ec4836 100644 --- a/activerecord/lib/active_record/persistence.rb +++ b/activerecord/lib/active_record/persistence.rb @@ -48,7 +48,6 @@ module ActiveRecord # how this "single-table" inheritance mapping is implemented. def instantiate(attributes, column_types = {}) klass = discriminate_class_for_record(attributes) - column_types = klass.decorate_columns(column_types.dup) klass.allocate.init_with( 'raw_attributes' => attributes, 'column_types' => column_types, diff --git a/activerecord/lib/active_record/querying.rb b/activerecord/lib/active_record/querying.rb index 1fe54cea3f..39817703cd 100644 --- a/activerecord/lib/active_record/querying.rb +++ b/activerecord/lib/active_record/querying.rb @@ -40,7 +40,7 @@ module ActiveRecord column_types = {} if result_set.respond_to? :column_types - column_types = result_set.column_types.merge(columns_hash) + column_types = result_set.column_types.except(*columns_hash.keys) else ActiveSupport::Deprecation.warn "the object returned from `select_all` must respond to `column_types`" end |