Несколько доменов в одном приложении rails - PullRequest
0 голосов
/ 29 марта 2010

Я впервые создаю приложение с использованием Ruby on Rails.

Я хотел бы переключить базу данных в зависимости от загруженного сайта. С помощью php я делал простые strpos на http host и устанавливал имя базы данных в зависимости от этого. Как я могу сделать это с рельсами?

Ответы [ 2 ]

2 голосов
/ 29 марта 2010

Когда приложение Rails запускается в рабочем режиме, оно предварительно загружает свои классы и получает, например, данные столбца из настроенной базы данных. Чтобы использовать несколько баз данных, вам придется прекратить делать это - и это может вызвать гораздо больше проблем, чем решить.

Гораздо проще управлять решением - просто иметь две копии приложения, по одному на каждый домен.

Приложение Rails, как правило, предназначено для запуска с поддержкой одной базы данных. Если у вас есть данные, относящиеся только к одному домену, то все ваши данные могут находиться в одной базе данных, но соответствующие модели связаны с конкретной Модель "SiteDomain", которой вы можете управлять контентом.

0 голосов
/ 29 марта 2010

Вы можете запускать ваше приложение в разных средах (например, domain1_production, domain2_production и т. Д.), Чтобы вы могли определять в базах данных database.yml среды для всех ваших доменов. Но каждая среда должна запускать свой собственный процесс в памяти.

Другим решением является установка before_filter в каждой модели и анализ вашего домена для настройки соединения с базой данных, которое вам требуется. Но это довольно странный взлом

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