Альтернатива для глобальных переменных, зависящих от окружающей среды - PullRequest
0 голосов
/ 03 февраля 2011

В моем проекте Ruby on Rails есть несколько мест, где мне нужно получить доступ к значению, зависящему от среды, в которой был запущен Ruby on Rails.

В частности, это имя базы данных MongoDB , к которой мне нужно подключиться.

В настоящее время у меня просто есть что-то вроде:

MONGO_DB = "database_name"

in config/environments/< environment >.rb.

Тогда в коде я могу назвать такие вещи, как Mongo::Connection.new.db(MONGO_DB).

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

Ответы [ 2 ]

2 голосов
/ 03 февраля 2011

Надеюсь, есть гораздо лучший способ.Найдите вдохновение в Конфигурационном файле YAML .

Наличие всех данных в файлах YAML - действительно чистый способ обработки нескольких случаев.

2 голосов
/ 03 февраля 2011

Вы можете обернуть свои настройки в классе или модуле:

module Settings
   MONGO_DB = 'database_name'
end

Затем получить к нему доступ:

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