Heroku环境变量无法访问,而是获得

时间:2021-07-10 19:14:26

Have configuration in aws_setting.yml for different environments, as:

在aws_setting.yml中为不同的环境配置,如下所示:

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 added MY_SETTING kvp in staging's Config Vars

在heroku中,在staging的Config Vars中添加了MY_SETTING kvp

Loaded settings during initialization:

初始化期间加载的设置:

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

Now after deployment to staging, instead of getting value for S3_Setting['enable_setting'] as true or false, receiving '<%= ENV['MY_SETTING'] %>' as text.

现在在部署到暂存之后,不是将S3_Setting ['enable_setting']的值设置为true或false,而是将<<%= ENV ['MY_SETTING']%>'作为文本接收。

1 个解决方案

#1


1  

This is because you're just loading YAML. You also need to parse the content as ERB to get the value extrapolated.

这是因为你只是加载YAML。您还需要将内容解析为ERB以获得外推值。

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

#1


1  

This is because you're just loading YAML. You also need to parse the content as ERB to get the value extrapolated.

这是因为你只是加载YAML。您还需要将内容解析为ERB以获得外推值。

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