Ruby on rails Rails gem未使用环境变量
我创建了一个Rails gem和一个使用该gem的Rails应用程序。gem部署在Gemfury,我成功地捆绑安装了gem。在gem中,我将一个变量设置为环境变量。当我在本地运行我的应用程序时,应用程序中使用环境变量的位置可以读取Figaro管理的我的环境变量,但gem无法读取。我可能遗漏了什么或做错了什么 例如,如果我在gem中执行此操作:Ruby on rails Rails gem未使用环境变量,ruby-on-rails,ruby,gem,environment-variables,Ruby On Rails,Ruby,Gem,Environment Variables,我创建了一个Rails gem和一个使用该gem的Rails应用程序。gem部署在Gemfury,我成功地捆绑安装了gem。在gem中,我将一个变量设置为环境变量。当我在本地运行我的应用程序时,应用程序中使用环境变量的位置可以读取Figaro管理的我的环境变量,但gem无法读取。我可能遗漏了什么或做错了什么 例如,如果我在gem中执行此操作: cache_enabled = ENV['CACHE_ENABLED'] || false 即使我的环境变量CACHE_ENABLED=true,它也
cache_enabled = ENV['CACHE_ENABLED'] || false
即使我的环境变量CACHE_ENABLED=true,它也将以false结束。我的Rails应用程序读取环境变量没有问题
如果有区别的话,我使用的是Rails 4。如果您使用的是Rails 4.1或更高版本,那么可能是 您应该能够$spring stop,然后正确运行您的应用程序,因为spring将使用新的env vars重新启动 您可以根据永久移除弹簧
作为旁注,我倾向于在本地使用foreman run命令,包括不太为人所知的foreman run命令,如果这样做,那么您可以将DISABLE_SPRING=1预先添加到您的.env中,并且无论何时使用foreman,SPRING都将被绕过。因此,环境变量是在本地设置的,是吗?生产应用程序位于何处?能否验证设置变量的环境是否与运行库的环境相同?@Mallanaga我正在本地设置环境变量并在本地运行。当我进入生产环境时,我将把它放在Heroku中并设置Heroku环境变量。@zeantsoi如果我正在运行在Gemfile中指定gem的Rails应用程序,这些gem与应用程序运行在同一环境中,对吗?请在代码行后添加调试行:p ENV['CACHE_ENABLED'].class和p CACHE_ENABLED。给我们看一个结果。