Использование переменных среды может быть хорошей идеей, если вы хотите, чтобы такие вещи, как ключи API и пароли, не попадали в ваш исходный код. Доступ к ним из вашего кода осуществляется с помощью объекта ENV
:
my_api_key = ENV['MY_API_KEY']
Чтобы использовать эту технику, вам нужно настроить переменные в своей среде перед запуском приложения, и то, как вы это сделаете, зависит от вашей локальной настройки и, вероятно, также будет зависеть от разработки и производства.
В процессе разработки вы можете просто установить переменные среды в вашей оболочке, например, с баш:
$ export MY_API_KEY=foobar123abc
$ rails s
Теперь рельсы запустятся и получат доступ к этой переменной среды. Вы также можете установить переменные только для одной команды:
$ MY_API_KEY=foobar123abc rails s
В зависимости от того, что такое sevice / api, вы можете установить для некоторых из них значения разработки / тестирования по умолчанию в config/environments/development.rb
(или test.rb
):
ENV['MY_API_KEY'] = 'non_secret_api_key_that_can_be_shared_around'
Настройка переменных среды в рабочей среде будет зависеть от того, как вы развертываете свое приложение. У Phusion есть статья об использовании переменных среды в Passenger , если вы используете это. Также есть полезная статья об использовании переменных среды с Heroku , которую стоит прочитать, даже если вы не используете их для развертывания.