【问题标题】:Ruby on Rails - Source a file and save ENV variable as globalRuby on Rails - 获取文件并将 ENV 变量保存为全局变量
【发布时间】:2015-05-22 22:34:08
【问题描述】:

我有一个已保存到/home/user/api/keys 的 API 密钥,我想将它保存为我的 Rails 应用程序中的全局变量。我认为这会起作用,这是我的config/initializers/my_constants.rb

`source "/home/user/api/keys"`
API_PASS = ENV["API_PASSWORD"]

这是/home/user/api/keys(显然没有真正的价值):

#!/bin/bash
export API_PASSWORD="--------"

source 命令似乎没有做任何事情。 API_PASS 设置为 nil。我该怎么做?

【问题讨论】:

  • 为什么不在你的shell中设置环境变量?
  • @DaveNewton - 我想自动化它。所以我想我会做一个脚本,调用源命令,然后部署服务器。但我想我在处理我的 cron 任务时仍然需要打开文件并解析它。

标签: ruby-on-rails constants global env


【解决方案1】:

上面的方法不起作用,因为反引号命令会启动它自己的 shell 并结束它,因此这些变量永远不会包含在脚本的其余部分中。

我认为您必须自己解析文件并将条目添加到 ENV。我会查看 dotenv gem,看看你是否可以将它指向你自己的环境文件。他们为您完成了所有艰苦的工作。

https://github.com/bkeepers/dotenv

【讨论】:

  • 我想我将创建一个使用 source 命令的脚本,然后为此进行部署。我想当我在 cron 任务中处理这个密码时,我必须解析文件。我可能只是自己打开文件并使用正则表达式解析内容。感谢您解释后记失败的原因!
猜你喜欢
  • 2014-01-31
  • 2016-08-23
  • 2012-09-24
  • 1970-01-01
  • 1970-01-01
  • 2022-01-16
  • 2011-10-28
  • 2016-02-10
  • 1970-01-01
相关资源
最近更新 更多