我如何才能发现我的 ROR 应用程序正在获取其 ENV 变量

How can I found out were my ROR app is getting its ENV variables

我接管了一个 ROR 应用程序,我在 local_env.yml 和 .env 中更改了 ENV vars 以指向 MongoDB Atlas 上的新 MongoDB 服务器并远离 MLab.However,该应用程序仍在 MLab 上访问数据库。

所以我也做了以下操作:

  1. 我查了下电脑,bash_profile里面有相同的ENV,我已经改了。
  2. 然后我做了一个来源~/.bash_profile
  3. 我重新启动了 Puma,但该应用程序仍在使用通过 ENV[MONGO].
  4. 访问的 Mlab DB

有没有办法找出应用程序从何处提取 ENV 变量?

ruby 中没有具体说明环境变量的设置位置,因为它们是 ENVIRONMENT VARIABLES 所以首先要了解这意味着什么。

你可以尝试 grep 递归

grep -rnw 'base/path/to/search/' -e 'MONGO'

根据您使用的shell,可能还有其他方法可以找到它们。但是,如果它们是从 shell 未加载的文件中加载的,而是由您的 ruby 应用程序加载的,即 yaml 文件,这些可能对您没有帮助。 有关详细信息,请参阅 this answer