From 97811698ab0e68b33fbf3067c3764e385dd75d53 Mon Sep 17 00:00:00 2001 From: Emilio Tagua Date: Tue, 23 Jun 2009 19:45:14 -0300 Subject: If the class or method isn't defined use "id" as primary_key. --- lib/arel/engines/sql/relations/writes.rb | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/arel/engines/sql/relations/writes.rb b/lib/arel/engines/sql/relations/writes.rb index 471fceabd8..b90d380c64 100644 --- a/lib/arel/engines/sql/relations/writes.rb +++ b/lib/arel/engines/sql/relations/writes.rb @@ -48,7 +48,12 @@ module Arel conditions << " LIMIT #{taken}" if engine.adapter_name != "MySQL" - quote_primary_key = engine.quote_column_name(table.name.classify.constantize.primary_key) + begin + quote_primary_key = engine.quote_column_name(table.name.classify.constantize.primary_key) + rescue NameError + quote_primary_key = engine.quote_column_name("id") + end + conditions = "WHERE #{quote_primary_key} IN (SELECT #{quote_primary_key} FROM #{engine.connection.quote_table_name table.name} #{conditions})" end end -- cgit v1.2.3