我的寶石生成以下文件的信息加載到配置/ 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