Вот способ:
Перейдите на 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
.