如何访问在 secret.yml 中定义并在其他 Ruby 脚本中需要的变量

How to access a variable defined in secret.yml and required in other Ruby script

secrets.yml 文件包含:

should_preferred_browser_driver: 0

在名为 "rails_helper.rb" 的项目的另一个脚本中,我想访问该变量。

  if should_preferred_browser_driver
    return Capybara.javascript_driver = :selenium_chrome
  else
    return Capybara.javascript_driver = :selenium_chrome_headless
  end

显示错误:

Can not find 'should_preferred_browser_driver'

在rails_helper.rb中访问secrets.yml中定义的变量的方法是什么?

假设您正在使用 Rails,您应该能够通过以下方式访问 should_preferred_browser_driver 变量:

Rails.application.secrets.should_preferred_browser_driver

但是,也许更好的方法是在 ENV 变量中处理配置而不是机密。 Figaro or dotenvgems 在很多项目中都很常见。

# config/application.yml -- Figaro example
  SHOULD_PREFERRED_BROWSER_DRIVER: 0
# specs/rails_helper.rb
  if Integer(ENV.fetch("SHOULD_PREFERRED_BROWSER_DRIVER") { 0 }) 
    ...
  else
    ...
  end

Rails.application.secrets.should_preferred_browser_driver

感谢 Conor,它现在正在使用上述解决方案