0

我在黄瓜的 env.rb 文件中定义了一个常量:

CONFIG = YAML::load_file("#{File.dirname(__FILE__)}/../../configs/config.yaml")

然后我想从那个 'config.yaml' 文件中访问值,比如CONFIG['url'].

我遇到的问题是我有一个页面对象 siteprism 类,但我不知道如何访问它?

class MyPage < SitePrism::Page
  set_url CONFIG['url']
...

它失败了:

uninitialized constant MyPage::CONFIG (NameError)

我想访问在我的 env.rb 文件中定义的 CONFIG 常量,而不是来自 MyPage 的常量。你们知道我怎么能做到这一点吗?

4

2 回答 2

0

使用::,喜欢::CONFIG['url']

请注意,如果您有"YAML::load_file("for CONFIG,则此表达式的值将是nil

于 2016-12-05T12:40:26.927 回答
0

确保您的加载顺序正确。按照建议使用顶级命名空间。更好的逻辑是将它委托给一个帮助模块,在你的类中包含这个帮助模块。然后调用辅助模块方法

class MyKlass
  include MyHelper

  set_url helper_method[:key]
end

module MyHelper
  def helper_method
    {
      key: 'http://www.google.com/'
    }
  end
end

如果其他人认为 set_url 不起作用。随意在 SitePrism repo 上提出问题:https ://github.com/natritmeyer/site_prism/issues ,或者在这里询问是否更容易

于 2019-02-22T13:51:30.903 回答