是否可以在运行时刷新 ENV
Is it possible to refresh ENV during runtime
我正在使用 dotenv Gem 来读取我的 .env 文件中的变量。我创建了一个控制台命令来更新 .env 文件,但也在同一运行时读取它们。问题是它读取旧值,即使我更新了 .env 文件。有没有办法在运行时刷新 ENV 以获取最新值?
.env
FOOBAR=hello
ruby.rb
puts ENV['FOOBAR'] # Prints "hello"
EnvFile.update_variable('.env', 'FOOBAR', "How are you?")
Dotenv.load('.env')
puts ENV['FOOBAR'] # Prints "hello" even though looking in .env it has the new value "How are you?"
您是说您正在使用 dotenv
? rbenv
管理 ruby 安装,但不读取 .env
我在源代码中搜索的内容。使用 dotenv,您可以通过调用 Dotenv.load
从 .env
文件重新加载 ENV。它可能会给你关于常量被重新定义的警告。我要做的是制作一个配置 class 以将 ENV 的默认设置与您想要的重新定义 feature/function 结合起来。 Config 管理所有内容,但从 .env
.
读取默认值
您可以通过以下方式刷新:
Dotenv.overload('.env')
感谢 domcermak 在以下位置回答此问题:https://github.com/bkeepers/dotenv/issues/426
我正在使用 dotenv Gem 来读取我的 .env 文件中的变量。我创建了一个控制台命令来更新 .env 文件,但也在同一运行时读取它们。问题是它读取旧值,即使我更新了 .env 文件。有没有办法在运行时刷新 ENV 以获取最新值?
.env
FOOBAR=hello
ruby.rb
puts ENV['FOOBAR'] # Prints "hello"
EnvFile.update_variable('.env', 'FOOBAR', "How are you?")
Dotenv.load('.env')
puts ENV['FOOBAR'] # Prints "hello" even though looking in .env it has the new value "How are you?"
您是说您正在使用 dotenv
? rbenv
管理 ruby 安装,但不读取 .env
我在源代码中搜索的内容。使用 dotenv,您可以通过调用 Dotenv.load
从 .env
文件重新加载 ENV。它可能会给你关于常量被重新定义的警告。我要做的是制作一个配置 class 以将 ENV 的默认设置与您想要的重新定义 feature/function 结合起来。 Config 管理所有内容,但从 .env
.
您可以通过以下方式刷新:
Dotenv.overload('.env')
感谢 domcermak 在以下位置回答此问题:https://github.com/bkeepers/dotenv/issues/426