Ruby установка переменных ENV на Mac - PullRequest
6 голосов
/ 30 мая 2011

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

Heroku позволяет вам определять конфигурационные переменные, т.е..

config:add key=val

Теперь это довольно безопасно, поскольку значения секретного ключа не хранятся в моем коде.

Знаете ли вы, как и где я могу создавать такие переменные среды для приложения на моем локальном компьютере Mac.

Я гуглил это и пока не нашел хорошего решения. Есть идеи?

Заранее спасибо.

Ответы [ 4 ]

8 голосов
/ 30 мая 2011

Спасибо, Забба, но я действительно нашел отличный способ для себя.

Я использую POW для запуска своих локальных приложений и чтения документов. Я обнаружил, что вы можете установить переменные среды, добавив файл .powenv в корень моего приложения, т.е.1005 *

export API_KEY='abcdef123456'

Затем вы можете использовать в своем приложении как обычно, т.е.

api_key = ENV['API_KEY']

Довольно много вещей.

3 голосов
/ 30 мая 2011

Вот способ:

Перейдите на http://railswizard.org/ и добавьте только «EnvYAML» в шаблон.Нажмите «Готово», а затем нажмите на созданный файл .rb.Посмотрите, как этот код использует файл config/env.yml для установки переменных ENV.

Вот как это делается, благодаря http://railswizard.org/:

В каталоге вашего приложения:

Добавить в config/application.rb:

require 'env_yaml'

Создать файл с именем lib/env_yaml.rb:

require 'yaml'
begin
  env_yaml = YAML.load_file(File.dirname(__FILE__) + '/../config/env.yml')
  if env_hash = env_yaml[ENV['RACK_ENV'] || ENV['RAILS_ENV'] || 'development']
    env_hash.each_pair do |k,v|
      ENV[k] = v.to_s
    end
  end
rescue StandardError => e
end

Создать файл с именем config/env.yml:

defaults: &defaults
  ENV_YAML: true
  some_key: value

development:
  <<: *defaults

test:
  <<: *defaults

production:
  <<: *defaults

Обратите внимание, что ENV не Hash - он появляется только из-за использования [].Вот почему в lib/env_yaml.rb цикл each устанавливает в ENV значение каждого значения, найденного в config/env.yml, потому что мы не можем присвоить Hash непосредственно ENV.

1 голос
/ 29 января 2014

Я не использую pow, но rvm и bash.Я смог установить переменные среды, следуя инструкциям на этом посте в блоге Peachpit .

Как и другие ответы, мне нужно было добавить команды типа export TWILIO_ACCOUNT_SID="XXX", но в мой файл ~ / .profile.

Затем получил доступ к переменным в моем коде с помощью:

account_sid = ENV["TWILIO_ACCOUNT_SID"]
0 голосов
/ 13 августа 2013

Поместите переменные окружения в файл .env, и foreman автоматически выберет их.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...