Rails - 环境变量未定义

时间:2016-06-23 00:54:13

标签: ruby-on-rails

Rails中的环境变量是否会过期?

我一直在尝试将图片从Rails应用上传到AWS S3存储桶,我正在使用本教程作为指南 - https://www.codefellows.org/blog/tutorial-how-to-upload-files-using-the-aws-sdk-gem

我第一次经历并遵循所有说明来构建基本模板,但是当我尝试第一次提交时,我收到一个错误,即找不到与我的存储桶和身份验证相关的环境变量。我必须承认我还没有很好地理解环境变量,但我已经按照教程中的说明进行操作,设置这些变量如下:

$ export AWS_ACCESS_KEY_ID=INSERT_YOUR_ACCESS_KEY_ID_HERE
$ export AWS_SECRET_ACCESS_KEY=INSERT_YOUR_SECRET_KEY_HERE
$ export S3_BUCKET=INSERT_YOUR_BUCKET_NAME

一时兴起,我停止了服务器,再次运行这些命令,重新启动服务器,然后BINGO!有效。我想我第一次做错了。

但是,我稍后在模板上做了一些工作,将我自己的模板放在一起,允许多个文件上传。当我按顺序获取代码并尝试第一次提交时,我得到了与未定义的环境变量相同的错误。再次,我重新运行上面的命令,然后一切正常。

这是否存在系统性原因,或者我犯了错误?我怎样才能避免不断重置这些变量?

1 个答案:

答案 0 :(得分:1)

看看这个:http://railsapps.github.io/rails-environment-variables.html

我会建议您使用第三个选项,创建一个local_env.yml文件来存储您的环境变量,这样您就不必一次又一次地重新运行命令!