0

我有这个结构:

class1 < class2

一个简单的子<父关系。

我有一个模块,module1。

文件 CLASS_1.rb:

class1 < class2

end

文件 CLASS_2.rb:

class2
  include module1
end

文件 MODULE_1.rb:

module module1

end

为什么我会得到这个:

'<class:class2>': uninitialized constant class2::module1 (NameError)
4

2 回答 2

2

类/模块名称应该是常量(即以大写字母开头)。

class Class1 < Class2
  include Module1
end

并且不要忘记要求相应的文件。

# class1.rb
require_relative 'class2'
require_relative 'module1'

class Class1 < Class2
  include Module1
end
于 2012-11-01T10:55:34.783 回答
2

module1必须在它被包含时创建。如果class2在 CLASS_2.rb 中定义/创建之前尚未加载或需要 MODULE_1.rb,则module1在包含到class2.

于 2012-11-01T10:55:48.577 回答