Концептуально у меня была точно такая же проблема. Я хотел создать подкласс ActiveRecord :: Base и построить схему для этого соединения. Мне потребовалось много времени, чтобы разобраться, и я погрузился в ActiveRecord :: Base, Schema и Migration, но я нашел решение, которое работает, и оно действительно очень просто.
Под капотом Schema является подклассом Migration, и она вызывает instance_eval для блока, который вы предоставляете. Следовательно, мы находимся в области действия класса Migration и можем изменить его переменную экземпляра @connection для подключения подкласса ActiveRecord :: Base, т.е.
ActiveRecord::Schema.define do
@connection = TableB.connection
create_table :table_bs do |t|
t.column :text, :string
end
end
Я понимаю, что этот ответ, вероятно, слишком поздно! Но это все еще может быть кому-то полезно.