Более правильно объявлять константу (GH_SAVON), а не глобальную переменную в т.н инициализаторе (initializer). Сами конфигурационные данные можно хранить в файлах (папка config), в формате yaml или json или в любом другом удобоваримом формате.
Я так понял, в папке config/initializers нужно создать свой файл с объявлением константы. Например файл, my_variable.rb . А какая должна быть структура этого файла, где прописывать что бы он инициоровался при запуске и как потом с этим константам обращаться?
bogdan_uman: Да, нужно создать свой файл. Структуры у них нет. Это просто файлы, которые исполняются один раз при запуске. Тебе нужно будет прочитать файл с конфигурацией, распарсить содержимое (если нужно) и записать в константу. Советую также почитать документацию по рельсам.
Хм ... а при каком событии его лучше всего парсить? И если мне нужно например что бы значение для Production и Development было разное, как лучше разделить ще на 2 файлика, или в этом файле делать проверку?
bogdan_uman: Достаточно одного файла, в котором можно описать конфигурацию под все окружения (development/test/production) по образу и аналогии с, например, "database.yml"
Т.е примерно твой инициализатор будет выглядеть вот таким образом:
file_path = Rails.root.join('config', 'savon.yml')
file = YAML.load_file(file_path)
GH_SAVON = file[Rails.env] # подгружаем конфиг для текущего окружения и записываем в нашу константу.
Тоже самое можно сделать и с JSON форматом. Тогда поменяется только вторая строчка.