在irb中,我这样做
class Text
include FileUtils
end
我得到:NameError:未初始化的常量Test :: FileUtils
如果我这样做:包括FileUtils(即现在的类)everthing工作。
是什么给出了?
答案 0 :(得分:17)
您需要确保Ruby了解FileUtils模块。默认情况下不加载该模块:
>> FileUtils
NameError: uninitialized constant FileUtils
from (irb):1
>> require 'fileutils'
=> true
>> FileUtils
=> FileUtils
不要过于担心错误NameError: uninitialized constant Text::FileUtils
- 当你试图包含一个Ruby不知道的常量时,它会在几个地方看起来。在您的情况下,首先它将查找Text::FileUtils
,然后它将在根命名空间中查找::FileUtils
。如果它无法在任何地方找到它(在您的情况下它不能找到它),那么错误消息将告诉您它看起来的第一个位置。
答案 1 :(得分:1)
你试过吗?
class Text
include ::FileUtils
end
这假设FileUtils不在模块中。
答案 2 :(得分:1)
这是一个旧线程,但是如果在这个线程上有任何障碍可以找到答案。只需在代码之上(或类/方法/模块之外的任何地方)添加以下行
require 'fileutils'
包含在课程中不起作用,可能会用于旧版本。