Ruby on Rails использует переменные среды - PullRequest
2 голосов
/ 30 ноября 2011

Я хочу использовать в своем коде (также в представлениях) переменные типа:

ENV['SERVER_URL1'] 

И хочу, чтобы они были разными для непрозрачных сред (prod, dev, test)

  1. Были и как мне их настроить?
  2. Является ли это (с помощью ENV Vars) правильным способом настройки приложения для различных сред?
  3. о ENV['SERVER_URL'] - это стандартная переменная? Когда это станет доступным.

Я пытался установить в разных частях приложения (application.rb, development.rb)

ENV['SERVER_URL1'] = 'http://localhost:4000/'

но, похоже, не работает.

1 Ответ

1 голос
/ 20 ноября 2014

При использовании Rails 4.1+ новым и предпочтительным способом установки переменных ENV является использование файла config/secrets.yml.

Вот выдержка из примечаний к выпуску 4.1

Секреты, добавленные в этот файл, доступны через Rails.application.secrets.Например, со следующим config / secrets.yml:

development:
  secret_key_base: 3b7cd727ee24e8444053437c36cc66c3
  some_api_key: SOMEKEY

Rails.application.secrets.some_api_key возвращает SOMEKEY в среде разработки.

См. Руководство по обновлению Ruby on Rails.чтобы перенести существующие приложения для использования этой функции.

Таким образом, вы должны установить:

development:
  SERVER_URL1: http://localhost:4000
production:
  SERVER_URL1: http://my-domain.com
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...