不识别rails中S3.yml中的ENV变量

Mar*_*tin 5 yaml ruby-on-rails ruby-on-rails-3

我目前正在尝试使用最新aws-sdk推荐的gem 配置Paperclip .

在我的S3.yml文件中,我有类似的东西

development:
  bucket: newmeeter-dev
  access_key_id: ENV['S3_KEY']
  secret_access_key: ENV['S3_SECRET']
Run Code Online (Sandbox Code Playgroud)

但它没有认识到ENV变量.我收到以下错误

AWS::S3::Errors::InvalidAccessKeyId in PhotosController#create

The AWS Access Key Id you provided does not exist in our records.
Run Code Online (Sandbox Code Playgroud)

如果我尝试将访问和秘密直接放入文件中,它就能完美地运行.同时我尝试将两个ENV变量打印到视图中或在控制台中我可以看到它们的值正常.

我不知道它为什么不承认它.

Mar*_*tin 9

解决了!

我在Ruby on Rails中找到了对这个问题的回复 :你能把Ruby代码放在YAML配置文件中吗?

解决方案:YAML文件理解ERB格式的代码.

打印ENV变量里面<%=%>工作.

access_key_id: <%= ENV['S3_KEY'] %>
secret_access_key: <%= ENV['S3_SECRET'] %>
Run Code Online (Sandbox Code Playgroud)