Иногда возникает необходимость в создании собственных параметров и констант, зависящих от текущего окружения сервера (production, development, test). Как это сделать?
Обычно в интернете это описывается так:
1. В каталоге config создайте файл config.yml с содержимым:
development:
FACEBOOK_APP_ID: 123456789
test:
FACEBOOK_APP_ID: 987654321
production:
FACEBOOK_APP_ID: 147258369
2. Поместите в каталог config/initializers собственный файл config.rb (имя файла может быть любым) с содержимым:
APP_CONFIG = YAML.load_file("#{::Rails.root}/config/config.yml")[Rails.env]
3. Используйте у себя в программе полученные константы в виде конструкции:
print APP_CONFIG["FACEBOOK_APP_ID"]
И нигде не написано одной небольшой, но очень важной вещи: не забудьте перезапустить свой веб-сервер! Инициализаторы инициализируются на этапе запуска веб-сервера, поэтому без перезапуска вы будете получать ошибку вроде:
uninitialized constant "ActionView CompiledTemplates"
Удачи вам в разработке.
Инструкция актуальна для Rails 3.0.9 и Ruby 1.9.2.
Подписаться на:
Комментарии к сообщению
(
Atom
)
как-то даже странно, чтобы кто-то вносил в конфиги изменения и не перезапускал сервак
ОтветитьУдалить