如何访问在 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,它现在正在使用上述解决方案
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,它现在正在使用上述解决方案