【问题标题】:How to access a variable defined in secret.yml and required in other Ruby script如何访问在 secret.yml 中定义并在其他 Ruby 脚本中需要的变量
【发布时间】:2019-12-05 00:09:49
【问题描述】:

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中定义的变量的方法是什么?

【问题讨论】:

    标签: ruby variables scope require


    【解决方案1】:

    Rails.application.secrets.should_preferred_browser_driver

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

    【讨论】:

      【解决方案2】:

      假设您使用的是 Rails,您应该可以通过以下方式访问 should_preferred_browser_driver 变量:

      Rails.application.secrets.should_preferred_browser_driver
      

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

      # 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
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-07-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-09-10
        • 1970-01-01
        相关资源
        最近更新 更多