Используйте establish_connection
для переключения на другую базу данных:
ActiveRecord::Base.establish_connection(
:adapter => "mysql",
:host => "localhost",
:username => "myuser",
:password => "mypass",
:database => "somedatabase"
)
Вы также можете передать предварительно сконфигурированную среду из database.yml, например:
ActiveRecord::Base.establish_connection(ActiveRecord::Base.configurations['other_env'])
Вы также можете установить его для конкретной модели:
MyClass.establish_connection(...)
Я не думаю, что вы сможете - по крайней мере, не так, как вы надеялись. Вам нужно будет либо создать строку запроса самостоятельно и выполнить ее (то есть без использования оператора), либо найти или создать оболочку, поддерживающую эту функцию. Я использую Zend_Db , и я бы сделал это следующим образом:
$id = 5;
$baz = 'shazam';
$select = $db->select()->from('bar','foo')
->where('id = ?', $id)
->where('baz = ?', $baz); // Zend_Db_Select will properly quote stuff for you
print_r($select->__toString()); // prints SELECT `bar`.`foo` FROM `bar` WHERE (id = 5) AND (baz = 'shazam')
Просто установите его на смерть и выведите последний выполненный запрос. Обработка ошибок должна предоставить вам значимую информацию, которую вы можете использовать для исправления вашего запроса.