ruby - 未初始化的常量 XmlSimple,但我包含了正确的 gem

标签 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)

为什么会出现此错误,我该如何解决?


这些针对 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/

相关文章:

perl - 循环 XML::Simple 结构

ruby-on-rails - Ruby Rails - 查询很快,直到我打印输出?

ruby-on-rails - 迁移成功时,rails 迁移没有反射(reflect)

ruby - 这种排序算法的名称是什么?

ruby - 如何让 ruby​​ 打印包含传递给函数的参数的完整回溯?

ruby - 波浪号大于 (~>) 在 Ruby gem 依赖项中意味着什么?

ruby-on-rails - 是什么 !!和 Ruby 中的其他一些东西?

ruby - 如何使用 Ruby 读取 Excel 电子表格的内容?

perl - XML::Parser 拒绝安装