From 5ab0598b091dbe5679f96b1f7a097178c3caaf3b Mon Sep 17 00:00:00 2001 From: Raimonds Simanovskis Date: Mon, 1 Mar 2010 16:23:09 +0200 Subject: pass primary_key value to AR adapter insert method (necessary for Oracle adapter) --- lib/arel/engines/sql/engine.rb | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'lib') 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) -- cgit v1.2.3