Reputation: 2899
I have this structure:
class1 < class2
A simple child < parent relationship.
I got a module, module1.
file CLASS_1.rb:
class1 < class2
end
file CLASS_2.rb:
class2
include module1
end
file MODULE_1.rb:
module module1
end
why do I get this:
'<class:class2>': uninitialized constant class2::module1 (NameError)
Upvotes: 0
Views: 160
Reputation: 168269
module1
has to be created by the time it is included. If you have not loaded or required MODULE_1.rb before class2
definition/creation in CLASS_2.rb, then module1
is not created at its inclusion to class2
.
Upvotes: 2
Reputation: 230551
Class/module names should be constants (that is, begin with a capital letter).
class Class1 < Class2
include Module1
end
And also don't forget to require corresponding files.
# class1.rb
require_relative 'class2'
require_relative 'module1'
class Class1 < Class2
include Module1
end
Upvotes: 2