Ruby mixin给出了未知的常量错误

Ruby mixin给出了未知的常量错误,ruby,Ruby,在irb中,我这样做 class Text include FileUtils end 我得到:name错误:未初始化常量测试::FileUtils 如果我只是这样做的话:包括FileUtils(即现在的类),一切都正常 有什么好处?你试过了吗 class Text include ::FileUtils end 这假设FileUtils不在模块内。您需要确保Ruby了解FileUtils模块。默认情况下不加载该模块: >> FileUtils NameError: un

在irb中,我这样做

class Text
  include FileUtils
end
我得到:name错误:未初始化常量测试::FileUtils

如果我只是这样做的话:包括FileUtils(即现在的类),一切都正常

有什么好处?

你试过了吗

class Text
  include ::FileUtils
end

这假设FileUtils不在模块内。

您需要确保Ruby了解FileUtils模块。默认情况下不加载该模块:

>> FileUtils
NameError: uninitialized constant FileUtils
    from (irb):1
>> require 'fileutils'
=> true
>> FileUtils
=> FileUtils

不要太担心这个错误
NameError:uninitialized constant Text::FileUtils
——当您尝试包含Ruby不知道的常量时,它会出现在一些地方。在您的情况下,首先它将查找
Text::FileUtils
,然后在根命名空间中查找
::FileUtils
。如果它在任何地方都找不到它(在您的情况下它找不到),那么错误消息将告诉您它查找的第一个位置。

这是一个旧线程,但如果该线程上有任何碰撞,仍然可以找到答案。只需在代码顶部(或类/方法/模块之外的任何地方)添加以下行

包括在类中不起作用,可能在旧版本中使用。

不起作用。。。irb(main):004:0>类测试irb(main):005:1>include::FileUtils irb(main):006:1>结束名称错误:未初始化常量FileUtils from(irb):5
require 'fileutils'