【发布时间】:2011-01-27 07:10:43
【问题描述】:
在 irb,我这样做
class Text
include FileUtils
end
我得到:NameError: uninitialized constant Test::FileUtils
如果我只是这样做:包括 FileUtils(即现在的类),一切正常。
什么给了?
【问题讨论】:
标签: ruby
在 irb,我这样做
class Text
include FileUtils
end
我得到:NameError: uninitialized constant Test::FileUtils
如果我只是这样做:包括 FileUtils(即现在的类),一切正常。
什么给了?
【问题讨论】:
标签: ruby
这是一个旧线程,但如果在此线程上遇到任何问题,仍然可以找到答案。只需在他的代码顶部(或类/方法/模块之外的任何地方)添加以下行
require '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。如果它在任何地方都找不到它(在你的情况下它找不到),那么错误消息会告诉你它首先看到的地方。
【讨论】:
你试过了吗?
class Text
include ::FileUtils
end
这假设 FileUtils 不在模块内。
【讨论】: