2017-09-20 3 views
0

Haben Konfiguration in aws_setting.yml für verschiedene Umgebungen, wie:Heroku Umgebungsvariable nicht zugänglich, sondern immer <% = ENV [ 'MY_Setting']%>

local: &local_settings 
 
    enable_setting: true 
 

 
heroku: &heroku_settings 
 
    enable_setting: <%= ENV['MY_SETTING'] %> 
 

 
test: 
 
    <<: *local_settings 
 

 
development: 
 
    <<: *local_settings 
 

 
staging: 
 
    <<: *heroku_settings

In Heroku hinzugefügt MY_SETTING KVP in Config Vars Inszenierung

Loaded s -Einstellungen bei der Initialisierung:

S3_SETTING = YAML.load_file("#{::Rails.root}/config/aws_setting.yml")[Rails.env] 

nun nach der Bereitstellung Inszenierung, statt Wert immer für S3_Setting['enable_setting'] als true oder false, Empfangen '<% = ENV [' MY_SETTING ']%>' als Text.

Antwort

1

Dies liegt daran, dass Sie nur YAML laden. Sie müssen den Inhalt auch als ERB analysieren, um den Wert extrapolieren zu lassen.

YAML.load(ERB.new(File.read("#{::Rails.root}/config/aws_setting.yml")).result)[Rails.env] 
Verwandte Themen