aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/arel/engines/sql/engine.rb8
1 files changed, 7 insertions, 1 deletions
diff --git a/lib/arel/engines/sql/engine.rb b/lib/arel/engines/sql/engine.rb
index 054de21a70..6087a26816 100644
--- a/lib/arel/engines/sql/engine.rb
+++ b/lib/arel/engines/sql/engine.rb
@@ -26,7 +26,13 @@ module Arel
module CRUD
def create(relation)
- connection.insert(relation.to_sql(false), nil, relation.primary_key)
+ primary_key_value = nil
+ if primary_key = relation.primary_key
+ if primary_key_attribute_and_value = relation.record.detect{|k, v| k.name.to_s == primary_key.to_s}
+ primary_key_value = primary_key_attribute_and_value[1].value
+ end
+ end
+ connection.insert(relation.to_sql(false), nil, primary_key, primary_key_value)
end
def read(relation)