# Uninitialized constant error

**URL:** <https://www.ruby-forum.com/t/uninitialized-constant-error/159018>\
**Category:** Ruby\
**Created:** [January 30, 2009, 1:21pm UTC](https://www.ruby-forum.com/t/uninitialized-constant-error/159018 "2009-01-30T13:21:42Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![youhaodeyi](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/y/b9bd4f/32.png) [@youhaodeyi](https://www.ruby-forum.com/u/youhaodeyi)\
**Post date:** [January 30, 2009, 1:21pm UTC](https://www.ruby-forum.com/t/uninitialized-constant-error/159018/1 "2009-01-30T13:21:42Z")

</div>

I have three ruby classes, see below:

1. base\_cls.rb

File.dirname( **FILE** )+’/cls\_factory’  
class BaseCls

def self.say  
ClsFactory.say  
end  
end  
BaseCls.say

1. sub\_cls.rb

require File.dirname( **FILE** )+’/base\_cls’

class SubCls \< BaseCls  
end

1. cls\_factory.rb

require File.dirname( **FILE** )+’/sub\_cls’

class ClsFactory  
def self.get\_cls  
SubCls.new  
end  
end

When I run base\_cls.rb, I got this error:

base\_cls.rb:5:in `say’: uninitialized constant BaseCls::ClsFactory  
(NameError)

I don’t understand why this error happens? Can anyone help me on this?

thanks.

---

<div class="post-metadata">

**Author:** ![youhaodeyi](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/y/b9bd4f/32.png) [@youhaodeyi](https://www.ruby-forum.com/u/youhaodeyi)\
**Post date:** [January 30, 2009, 7:26pm UTC](https://www.ruby-forum.com/t/uninitialized-constant-error/159018/2 "2009-01-30T19:26:03Z")

</div>

2009/1/30 Zhao Yi [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):

> end
> 
> base\_cls.rb:5:in `say’: uninitialized constant BaseCls::ClsFactory  
> (NameError)
> 
> I don’t understand why this error happens? Can anyone help me on this?

Maybe you meant to prefix the first line in base\_cls.rb with “require”?

Stefan

---

<div class="post-metadata">

**Author:** ![youhaodeyi](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/y/b9bd4f/32.png) [@youhaodeyi](https://www.ruby-forum.com/u/youhaodeyi)\
**Post date:** [January 31, 2009, 3:00am UTC](https://www.ruby-forum.com/t/uninitialized-constant-error/159018/3 "2009-01-31T03:00:23Z")

</div>

Stefan L. wrote:

> Maybe you meant to prefix the first line in base\_cls.rb with “require”?
> 
> Stefan

Oh, sorry, I forgot to type the ‘require’. But the problem is still  
there.
