[英]Load environment variable in boot file
我在 boot.rb 中加载环境变量时遇到问题。 我尝试了 2 个宝石 dotenv 和 dotenv-rails,但没有一个对我有用。 其他地方我可以使用环境变量,但不能在 boot.rb 中使用。 任何人都对这个有任何线索
if ["development"].include?(ENV['RAILS_ENV'])
require 'bootsnap/setup'
Bootsnap.setup(
cache_dir: 'tmp/cache', # Path to your cache
development_mode: 'development', # Current working environment, e.g. RACK_ENV, RAILS_ENV, etc
load_path_cache: true, # Optimize the LOAD_PATH with a cache
autoload_paths_cache: true, # Optimize ActiveSupport autoloads with cache
compile_cache_iseq: true, # Compile Ruby code into ISeq cache, breaks coverage reporting.
compile_cache_yaml: true # Compile YAML into a cache
)
end
DotEnv 只会在 Gem 加载后将您的.env
文件加载到 env 中。
在 Rails 中,这是由config/application.rb
Bundler.require(*Rails.groups)
行完成的。 如果您需要在此之前访问环境变量,则需要手动调用Dotenv::Railtie.load
:
Bundler.require(*Rails.groups)
Dotenv::Railtie.load
或者至少这就是自述文件会让您相信的内容。 我想你可以使用普通的 ruby 方法而不是 Railtie:
require 'dotenv'
Dotenv.load
但是有很多选项可以从一个文件中设置 ENV 变量,比如direnv ,它不是一个 Ruby gem 并且钩到你的 shell 本身。
在测试环境变量之前,您可以使用 - 根据您的需要 - load
或require
显式处理您的.env
文件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.