【发布时间】:2013-12-31 16:21:07
【问题描述】:
我创建了一个 Rails gem 和一个使用该 gem 的 Rails 应用程序。 gem 部署在 Gemfury,我成功地能够bundle install gem。在 gem 中,我将一个变量设置为环境变量。当我在本地运行我的应用程序时,应用程序中使用环境变量的位置能够读取我的环境变量(由 Figaro 管理),但 gem 不能。我可能遗漏了什么或做错了什么?
例如,如果我在 gem 中这样做:
cache_enabled = ENV['CACHE_ENABLED'] || false
即使我的环境变量 CACHE_ENABLED = true,它也会以 false 结束。我的 Rails 应用读取环境变量没有问题。
如果有什么不同,我正在使用 Rails 4。
【问题讨论】:
-
所以,环境变量是在本地设置的,是吗?生产应用位于何处?
-
您能否验证您设置变量的环境是否与您运行库的环境相同?
-
@Mallanaga 我在本地设置环境变量并在本地运行。等我去生产的时候,我会把它放到 Heroku 中,并设置 Heroku 环境变量。
-
@zeantsoi 如果我正在运行在其 Gemfile 中指定 gems 的 Rails 应用程序,那么这些 gems 与应用程序在相同的环境中运行,对吗?
-
请在代码行之后添加调试行:
p ENV['CACHE_ENABLED'].class和p cache_enabled。并向我们展示结果。
标签: ruby-on-rails ruby gem environment-variables