20 июл. 2011 г.

Rails 3: как сделать свой конфигурационный файл

Иногда возникает необходимость в создании собственных параметров и констант, зависящих от текущего окружения сервера (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.

1 комментарий :

  1. как-то даже странно, чтобы кто-то вносил в конфиги изменения и не перезапускал сервак

    ОтветитьУдалить