我正在使用 figaro gem 并创建了一个application.yml
包含我所有变量的文件。这个 application.yml 文件位于一个共享文件夹中(我正在使用 capistrano),并且符号链接到当前实时应用程序目录中的 config/application.yml,但是我只能访问 rails 控制台中的变量,而不是应用程序。我的凭据如下(省略真实细节):
注意:我尝试删除 "" 语音标记,并在此列表前加上生产:每行有 2 个空格,没有标签,它不能解决任何问题。该文件的权限与以相同方式实现的databse.yml文件完全相同,为777。
应用程序.yml
FFMPEG_LOCATION: "/path/to/ffmpeg"
EMAIL_USERNAME: "me@gmail.com"
EMAIL_PASSWORD: "password"
S3_BUCKET: "my_bucket"
AWS_SECRET_KEY_ID: "my_secret_key"
AWS_ACCESS_KEY_ID: "my_access_key"
我可以在生产控制台中访问这些变量 =>
Loading production environment (Rails 3.2.14)
irb(main):001:0> ENV["S3_BUCKET"]
=> "my-s3-bucket-name"
但是,它们不会在应用程序本身中返回任何内容。我在 Ryan 的优秀 Pro railscast 剧集http://railscasts.com/episodes/335-deploying-to-a-vps之后设置了我的 linux 盒子
如何在应用程序本身中访问这些变量?
如果有人需要更多代码,请大声喊叫。
编辑 我删除了 figaro gem 实现了以下 railscasts 教程中显示的 yaml 配置:http ://railscasts.com/episodes/85-yaml-configuration-revised 。我认为这实际上是 figaro gem 正在做的事情,但是本教程没有使用 ENV 变量,而是使用了 CONFIG[:variables] 似乎效果很好。