未初始化的常量 XmlSimple,但我包含了正确的 gem
Uninitialized constant XmlSimple, but I included the proper gem
我正在尝试在脚本中使用 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)
为什么会出现此错误,我该如何解决?
gem 类似问题的这些常见解决方案对我没有帮助:
- 如果忘记明确包含相关 gem,就会出现此错误。从我的MVCE可以看出,我没有犯这个错误。
- 有时,明确要求 gem 的正确版本可以解决此问题。但是,我已经需要这个 gem 的最新版本。我还仔细检查了这是我在系统上安装的 gem 的版本。
- 根据 XmlSimple documentation,
XmlSimple
class 应该在 gem 被包含时被定义。我没有尝试使用不存在的 class。
您已使用 gem
方法激活 gem,但您尚未要求 它。这意味着 gem 的文件现在在您的加载路径上,但它们尚未被 Ruby 解释器加载,因此它们的内容对您的程序不可用。
您只需添加
require 'xmlsimple'
在 gem
行之后。
您并不总是需要 gem
方法,您可以只使用 require
并且 gem 的最新安装版本将自动激活 — 但如果您想要明确指定要使用的版本 gem
。
我正在尝试在脚本中使用 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)
为什么会出现此错误,我该如何解决?
gem 类似问题的这些常见解决方案对我没有帮助:
- 如果忘记明确包含相关 gem,就会出现此错误。从我的MVCE可以看出,我没有犯这个错误。
- 有时,明确要求 gem 的正确版本可以解决此问题。但是,我已经需要这个 gem 的最新版本。我还仔细检查了这是我在系统上安装的 gem 的版本。
- 根据 XmlSimple documentation,
XmlSimple
class 应该在 gem 被包含时被定义。我没有尝试使用不存在的 class。
您已使用 gem
方法激活 gem,但您尚未要求 它。这意味着 gem 的文件现在在您的加载路径上,但它们尚未被 Ruby 解释器加载,因此它们的内容对您的程序不可用。
您只需添加
require 'xmlsimple'
在 gem
行之后。
您并不总是需要 gem
方法,您可以只使用 require
并且 gem 的最新安装版本将自动激活 — 但如果您想要明确指定要使用的版本 gem
。