Ruby mixin给出了未识别的常量错误

Bil*_*lga 8 ruby

在irb,我这样做

class Text
  include FileUtils
end
Run Code Online (Sandbox Code Playgroud)

我得到:NameError:未初始化的常量Test :: FileUtils

如果我这样做:包括FileUtils(即现在的类)everthing工作.

是什么赋予了?

Gar*_*eth 17

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

>> FileUtils
NameError: uninitialized constant FileUtils
    from (irb):1
>> require 'fileutils'
=> true
>> FileUtils
=> FileUtils
Run Code Online (Sandbox Code Playgroud)

不要过多担心错误NameError: uninitialized constant Text::FileUtils- 当你试图包含一个Ruby不知道的常量时,它会在几个地方看起来.在您的情况下,首先它将查找Text::FileUtils然后它将::FileUtils在根命名空间中查找.如果它无法在任何地方找到它(在你的情况下它不能),那么错误信息将告诉你它看起来的第一个地方.