Я отключаю эту строку от вашего вопроса:
все соединения (включая действительные
сеансы через разные
субдомены прерываются ...).
Похоже, что есть некоторые модели, которые вы хотели бы подключить к производственной базе данных, из которых, я полагаю, вы храните сеансы в базе данных. Похоже, вы хотите, чтобы сеансы оставались подключенными к рабочей среде, а остальные вы хотели бы переключить на другую базу данных.
Вы можете сделать это, вставив новый класс между ActiveRecord и моделями, для которых вы хотите изменить, изменить соединение.
Этот класс будет выглядеть так:
class MyAppModel < ActiveRecord::Base
self.abstract_class = true
end
тогда модели, которые должны быть изменены, должны наследоваться от него:
class User < MyAppModel
#stuff
end
Модели, которые не должны изменяться, должны оставаться подключенными к ActiveRecord.
Наконец, в вашем ApplicationController, вызовите вместо этого установочную_коннекцию в MyAppModel.
Вы можете сделать это с таким количеством классов, сколько захотите. Классы Model будут работать обратно вверх по иерархии, пока не найдут первый класс с допустимым соединением, и будут использовать его для взаимодействия с базой данных. Никаких других изменений не требуется.