Ruby on Rails: настройка переменных среды — подробное руководство

Переменные среды играют решающую роль в настройке приложений Ruby on Rails. Они позволяют вам хранить конфиденциальную информацию, такую ​​как ключи API, учетные данные базы данных и другие параметры конфигурации, отдельно от вашей кодовой базы. В этой статье мы рассмотрим различные методы установки переменных среды в Ruby on Rails, а также приведем примеры кода.

Метод 1: использование драгоценного камня dotenv
Гем dotenvпредоставляет простой способ загрузки переменных среды из файла .envв ваше приложение Rails. Чтобы использовать его, выполните следующие действия:

Шаг 1. Установите драгоценный камень dotenv, добавив его в свой Gemfile:

gem 'dotenv-rails', require: 'dotenv/rails-now'

Шаг 2. Создайте файл .envв корневом каталоге вашего приложения Rails. Добавьте переменные среды в следующем формате:

API_KEY=your_api_key
DB_PASSWORD=your_db_password

Шаг 3. Загрузите переменные среды в файлы конфигурации вашего приложения Rails. Например, в config/application.rb:

Bundler.require(*Rails.groups)
Dotenv::Railtie.load

Метод 2: использование config/secrets.yml
Rails предоставляет файл config/secrets.ymlдля хранения конфиденциальной информации. Это файл YAML, в котором вы можете определить секреты, специфичные для вашей среды.

Шаг 1. Откройте config/secrets.ymlи добавьте переменные среды в соответствующую среду:

development:
  api_key: your_api_key
  db_password: your_db_password

production:
  api_key: <%= ENV['API_KEY'] %>
  db_password: <%= ENV['DB_PASSWORD'] %>

Шаг 2: Получите доступ к переменным среды в вашем приложении Rails, используя Rails.application.secrets.<variable_name>. Например:

api_key = Rails.application.secrets.api_key
db_password = Rails.application.secrets.db_password

Метод 3: использование среды оболочки
Вы также можете установить переменные среды непосредственно с помощью среды оболочки. Этот метод полезен при развертывании вашего приложения Rails на сервере.

Пример (Linux/macOS):

export API_KEY=your_api_key
export DB_PASSWORD=your_db_password

Пример (Windows CMD):

set API_KEY=your_api_key
set DB_PASSWORD=your_db_password

Метод 4: использование файла конфигурации
Вы можете создать собственный файл конфигурации для хранения переменных среды и загрузить их в свое приложение Rails.

Шаг 1. Создайте новый файл YAML или JSON, например config/environment_variables.yml:

development:
  api_key: your_api_key
  db_password: your_db_password

production:
  api_key: <%= ENV['API_KEY'] %>
  db_password: <%= ENV['DB_PASSWORD'] %>

Шаг 2: Загрузите файл конфигурации в ваше приложение Rails. Например, в config/application.rb:

env_config = YAML.load_file("#{Rails.root}/config/environment_variables.yml")
ENV.merge!(env_config[Rails.env])

Настройка переменных среды в приложениях Ruby on Rails необходима для безопасного управления конфиденциальной информацией и настройки вашего приложения. В этой статье мы рассмотрели несколько методов, в том числе использование драгоценного камня dotenv, config/secrets.yml, среды оболочки и пользовательского файла конфигурации. Выберите метод, который лучше всего соответствует требованиям вашего проекта и потребностям безопасности.

Помните, что разделение кода и конфигурации имеет решающее значение для надежной и безопасной разработки приложений.