diff options
Diffstat (limited to 'activerecord/lib')
-rw-r--r-- | activerecord/lib/active_record/attribute_set/builder.rb | 7 | ||||
-rw-r--r-- | activerecord/lib/active_record/querying.rb | 3 |
2 files changed, 7 insertions, 3 deletions
diff --git a/activerecord/lib/active_record/attribute_set/builder.rb b/activerecord/lib/active_record/attribute_set/builder.rb index 1e146a07da..d4a787f2fe 100644 --- a/activerecord/lib/active_record/attribute_set/builder.rb +++ b/activerecord/lib/active_record/attribute_set/builder.rb @@ -23,8 +23,11 @@ module ActiveRecord end def add_uninitialized_attributes(attributes) - types.except(*attributes.keys).each do |name, type| - attributes[name] = Attribute.uninitialized(name, type) + types.each_key do |name| + next if attributes.key? name + type = types[name] + attributes[name] = + Attribute.uninitialized(name, type) end end end diff --git a/activerecord/lib/active_record/querying.rb b/activerecord/lib/active_record/querying.rb index a9ddd9141f..45b6b1c925 100644 --- a/activerecord/lib/active_record/querying.rb +++ b/activerecord/lib/active_record/querying.rb @@ -37,7 +37,8 @@ module ActiveRecord # Post.find_by_sql ["SELECT body FROM comments WHERE author = :user_id OR approved_by = :user_id", { :user_id => user_id }] def find_by_sql(sql, binds = []) result_set = connection.select_all(sanitize_sql(sql), "#{name} Load", binds) - column_types = result_set.column_types.except(*columns_hash.keys) + column_types = result_set.column_types.dup + columns_hash.each_key { |k| column_types.delete k } result_set.map { |record| instantiate(record, column_types) } end |