aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAaron Patterson <aaron.patterson@gmail.com>2011-04-13 18:07:22 -0700
committerAaron Patterson <aaron.patterson@gmail.com>2011-04-14 13:37:40 -0700
commit12ae92216bb17b6585f3ab4e9010bacd49a5ba9c (patch)
tree35cfd5b6550936ae4d96b53f8ee200f5abc378df
parent0268eac96366da46eabf7530131415867b9c09e1 (diff)
downloadrails-12ae92216bb17b6585f3ab4e9010bacd49a5ba9c.tar.gz
rails-12ae92216bb17b6585f3ab4e9010bacd49a5ba9c.tar.bz2
rails-12ae92216bb17b6585f3ab4e9010bacd49a5ba9c.zip
refactoring inserts to use the same method on the connection
-rw-r--r--activerecord/lib/active_record/relation.rb37
1 files changed, 16 insertions, 21 deletions
diff --git a/activerecord/lib/active_record/relation.rb b/activerecord/lib/active_record/relation.rb
index 2f9970dec1..9fe806425e 100644
--- a/activerecord/lib/active_record/relation.rb
+++ b/activerecord/lib/active_record/relation.rb
@@ -50,33 +50,28 @@ module ActiveRecord
conn = @klass.connection
+ substitutes = values.to_a
+ binds = substitutes.map do |arel_attr, value|
+ [@klass.columns_hash[arel_attr.name], value]
+ end
+
+ substitutes.each_with_index do |tuple, i|
+ tuple[1] = conn.substitute_at(tuple.first, i)
+ end
+
if values.empty? # empty insert
im.values = im.create_values [connection.null_insert_value], []
- @klass.connection.insert(
- im.to_sql,
- 'SQL',
- primary_key,
- primary_key_value)
else
- substitutes = values.to_a
- binds = substitutes.map do |arel_attr, value|
- [@klass.columns_hash[arel_attr.name], value]
- end
- substitutes.each_with_index do |tuple, i|
- tuple[1] = conn.substitute_at(tuple.first, i)
- end
-
im.insert substitutes
-
- conn.insert(
- im.to_sql,
- 'SQL',
- primary_key,
- primary_key_value,
- nil,
- binds)
end
+ conn.insert(
+ im.to_sql,
+ 'SQL',
+ primary_key,
+ primary_key_value,
+ nil,
+ binds)
end
def new(*args, &block)