我的宝石生成以下文件的信息加载到配置/ my_gem.yml:Rubygem:如何YAML文件
test: true
现在我想负载测试的价值到我的宝石模块要能拨打:
MyGem.test
=> true
这是我的尝试:
在Rails应用程序 - 配置/初始化/ my_gem.rb:
CONFIG_PATH = "#{Rails.root}/config/my_gem.yml"
MY_GEM = YAML.load_file(CONFIG_PATH)[Rails.env]
创业板 - 的lib/my_gem.rb:
def self.test
::MY_GEM[:test]
end
,但我得到的例外,因为MY_GEM
未被识别为常量(在lib/my_gem.rb)
c:/RailsInstaller/Ruby2.3.0/lib/ruby/gems/2.3.0/gems/my_gem-0.1.0/lib/my_gem.rb:11:in`test':未初始化的常量MY_GEM(NameError)
不要称你的宝石“宝石” - 这是令人困惑的。真的,不要。在Rails应用程序初始化之前,gem将被加载。尝试从宝石内读取配置文件。 – Raffael
@Raffael好吧,我会改变这一点。只是为了展示目的而这样称呼 – jonhue
对不起,如果我有点教条。这真的好多了:D – Raffael