Just enough to get this to work on rails 2.0.2
Old behaviour:
Clone::Work.find(:all) # select * from works where type = 'work'
New behaviour
Clone::Work.find(:all) # select * from works
I make no promises about either its correctness or function, but it
Works For Me
Also there is a test yay
Xavier
http://rhnh.net
diff --git a/vendor/magic_multi_connections-1.2.1/lib/
ext_active_record/connection_specification.rb b/vendor/
magic_multi_connections-1.2.1/lib/ext_active_record/
connection_specification.rb
index b1315af..5442950 100755
--- a/vendor/magic_multi_connections-1.2.1/lib/ext_active_record/
connection_specification.rb
+++ b/vendor/magic_multi_connections-1.2.1/lib/ext_active_record/
connection_specification.rb
@@ -17,6 +17,15 @@ module ActiveRecord
end
end
+ def descends_from_active_record?
+ if self.to_s.split("::").last == self.base_class.to_s
+ true
+ elsif superclass.abstract_class?
+ superclass.descends_from_active_record?
+ else
+ superclass == Base || !columns_hash.include?
(inheritance_column)
+ end
+ end
end
diff --git a/vendor/magic_multi_connections-1.2.1/test/fixtures/
db_definitions/mysql.sql b/vendor/magic_multi_connections-1.2.1/test/
fixtures/db_definitions/mysql.sql
index 926616d..3af5aae 100755
--- a/vendor/magic_multi_connections-1.2.1/test/fixtures/
db_definitions/mysql.sql
+++ b/vendor/magic_multi_connections-1.2.1/test/fixtures/
db_definitions/mysql.sql
@@ -17,3 +17,9 @@ id INT(11) AUTO_INCREMENT PRIMARY KEY,
person_id INT(11) NULL,
description VARCHAR(255) NULL
);
+DROP TABLE IF EXISTS cars;
+CREATE TABLE cars (
+id INT(11) AUTO_INCREMENT PRIMARY KEY,
+type VARCHAR(255) NULL,
+name VARCHAR(255) NULL
+);
diff --git a/vendor/magic_multi_connections-1.2.1/test/
test_magic_multi_connections.rb b/vendor/magic_multi_connections-1.2.1/
test/test_magic_multi_connections.rb
index 1649d88..aa9c664 100755
--- a/vendor/magic_multi_connections-1.2.1/test/
test_magic_multi_connections.rb
+++ b/vendor/magic_multi_connections-1.2.1/test/
test_magic_multi_connections.rb
@@ -1,5 +1,15 @@
require File.dirname(__FILE__) + '/test_helper.rb'
+ class Car < ActiveRecord::Base
+ end
+
+ class Ford < Car
+ end
+
+
+ module Clone
+ establish_connection :production
+ end
module NormalModule; end
class TestMagicMultiConnection < Test::Unit::TestCase
@@ -21,7 +31,12 @@ class TestMagicMultiConnection <
Test::Unit::TestCase
def test_normal_modules_shouldnt_do_anything
assert_raise(NameError) { NormalModule::Person }
-
+ end
+
+ def test_sti
+ Ford.delete_all
+ ford = Ford.create!(:name => "My ford")
+ assert_equal
ford.id, Clone::Car.find(:first).id
end
end