未初始化的常量XmlSimple,但我包含了正确的宝石

时间:2016-08-18 01:49:12

标签: ruby rubygems xml-simple

我试图在脚本中使用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,则会出现此错误。从我的MVCE中可以看出,我没有犯这个错误。
  • 有时,明确要求正确版本的gem可以解决这个问题。但是,我已经要求这个gem的最新版本。我还仔细检查过这是我在系统上安装的gem的版本。
  • 根据XmlSimple documentation,当包含此gem时,肯定会定义XmlSimple类。我并没有尝试使用一个不存在的课程。

1 个答案:

答案 0 :(得分:3)

您已使用gem方法激活了 gem,但您还没有必需。这意味着gem的文件现在位于加载路径上,但Ruby解释器尚未加载它们,因此您的程序无法使用它们的内容。

您只需添加

即可
require 'xmlsimple'

gem行之后。

您并不总是需要gem方法,您可以使用require并自动激活最新安装的gem版本 - 但是如果您想指定要使用的版本需要明确使用gem