Одна модель - много соединений с БД в Rails? - PullRequest
1 голос
/ 20 января 2010

(с использованием Ruby on Rails и ActiveRecord)

Вкратце: существует ли способ, как модель может использовать разные схемы БД для каждого запроса?работаю в интранете, работаю в одной компании, но я решил, что хотел бы предложить его другим компаниям.Способ Rails состоит в том, чтобы добавить company_id к каждой модели и всегда использовать эту область.Но создание отдельной схемы БД для каждой компании имело бы гораздо больше смысла.Есть какой-то стандартный способ, как это сделать?

спасибо!

Ответы [ 2 ]

2 голосов
/ 20 января 2010

Что было бы неправильно с отдельным экземпляром вашего приложения для каждой компании?

1 голос
/ 20 января 2010

Добавление company_id ко всем моделям - абсолютно верный путь. То, о чем вы говорите, очень трудно управлять в долгосрочной перспективе, и может быть непросто убедиться, что правильное соединение используется для хранения правильных данных.

Несмотря на то, что такое разделение на различия, как это, раздражает, это может быть сделано и доказано за довольно короткий промежуток времени, и после этого все будет легче управлять. С named_scope нетрудно фильтровать, используя такие атрибуты.

Простая альтернатива - это развертывание приложения более одного раза с различным database.yml для каждой компании, где данные изолированы на уровне приложения, а не внутри приложения.

Это было бы легко сделать с помощью Passenger (mod_rails) и небольшого количества сценариев оболочки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...