Можете ли вы предложить рубиновый камень или показать фрагмент с exsmple, как заставить AtiveRecord :: Base преемника выбрать соединение db в зависимости от идентификатора записи модели?Ruby gem или snippet для использования различных подключений ActiveRecord db в зависимости от значения атрибута модели
ответ
ОК. Пожалуйста, дайте мне знать, если следующее решение может работать, если нет, то я удалю его здесь.
Я бы не использовал Gem для этого.
Здесь грязевая карта, как бы я решил этот проект. (Для малых и средних проектов только)
- Рубин Класс: управляет все соединения.
- Обработчик запросов: диктует, какое соединение нам нужно на основании условия .
- Коннектор - это простой класс, который захватывает материал от Рельсы и запускают обработчики запросов.
Обработчик запросов - это дополнительный бит. Вы можете напрямую подключить Rails к классу Ruby. (Мне это не нравится, потому что они слишком сильно связаны)
Имейте файл database.yaml (просто чтобы Rails был рад). В вашем приложении будет использоваться соединитель Ruby Class и обработчик запросов для захвата разные базы данных, там нет Rails.
Надеюсь, что эта помощь!
PS: Опять же, если вы считаете, что это нехорошее решение, дайте мне знать, и я вижу, что я могу сделать. Приветственный помощник.
Привет, мистер Х. Спасибо за ваш ответ. Я ищу ссылки на полное стабильное решение, потому что мне не нравится идея разработки такой важной части проекта. – zuba
Хммм, справедливо. Я оставляю ответ там, если он может помочь кому-то другому. Я увижу, могу ли я получить шанс сделать вам драгоценный камень, который сделает все, что вам нужно, я думаю, что промежуточное ПО будет работать лучше. –
Не знаете, нашли ли вы решение. Вы видели этот драгоценный камень. Это может быть начало: https://github.com/karledurante/secondbase –
В какой базе данных вы работаете? Если вы используете postgres, вы можете использовать Schema вместо полной новой базы данных. –
Я использую postgres, и мне нужны эти dbs для размещения на разных серверах, поэтому они не могут быть схемами, верно? – zuba