我正在尝试使用 XmlSimple gem在脚本中。我的脚本如下所示:
#!/usr/bin/env ruby
gem 'xml-simple', '1.1.5'
xml = XmlSimple.xml_in('test_data.xml')
puts xml
失败并出现错误:
./script.rb:5:in `<main>': uninitialized constant XmlSimple (NameError)
为什么会出现此错误,我该如何解决?
这些针对 gems 类似问题的常见解决方案对我没有帮助:
- 如果忘记明确包含相关的 gem,就会出现此错误。从我的 MVCE 可以看出,我没有犯这个错误。
- 有时,明确要求 gem 的正确版本可以解决这个问题。但是,我已经需要这个 gem 的最新版本。我还仔细检查了这是我在系统上安装的 gem 的版本。
- 根据 XmlSimple documentation ,
XmlSimple
类应该在包含此 gem 时最确定地定义。我不是在尝试使用不存在的类。
最佳答案
您已使用 gem
方法激活 gem,但您还没有需要它。这意味着 gem 的文件现在位于您的加载路径上,但它们尚未被 Ruby 解释器加载,因此它们的内容对您的程序不可用。
你只需要添加
require 'xmlsimple'
在 gem
行之后。
你并不总是需要 gem
方法,你可以只使用 require
并且 gem 的最新安装版本将自动激活——但是如果你想指定要使用的版本,您需要明确地使用 gem
。
关于ruby - 未初始化的常量 XmlSimple,但我包含了正确的 gem,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39008756/