# Newbie Problem

**URL:** <https://www.ruby-forum.com/t/newbie-problem/156556>\
**Category:** Ruby\
**Created:** [December 30, 2008, 12:05am UTC](https://www.ruby-forum.com/t/newbie-problem/156556 "2008-12-30T00:05:29Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![unknown](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/u/4bbf92/32.png) [@unknown](https://www.ruby-forum.com/u/unknown)\
**Post date:** [December 30, 2008, 12:05am UTC](https://www.ruby-forum.com/t/newbie-problem/156556/1 "2008-12-30T00:05:29Z")

</div>

I’m trying to teach myself Ruby(and then rails) using Pragmatic’s  
“Programming Ruby” for the language part. I get the following error  
under NetBeans:

C:/Program Files/NetBeans  
6.5/ruby2/jruby-1.1.4/lib/ruby/site\_ruby/1.8/builtin/core\_ext/symbol.rb:1:in  
`const\_missing’: uninitialized constant Song (NameError)  
from C:\Projects\RubyLearning\RubyApplication1\lib\main.rb:4

when I try to run a two-file project built from the first example in  
Chapter 3:

song.rb:

# Sample code from Programing Ruby, page 23

class Song  
def initialize(name, artist, duration)  
@name = name  
@artist = artist  
@duration = duration  
end  
end

main.rb:  
a\_song = Song.new(“Pie Jesu”, “Sarah Brightman”, “234”)  
song.inspect

Any suggestions or help much appreciated. Also suggestions for some  
newbie-tolerant discussion forum.

Thanks in advance.

---

<div class="post-metadata">

**Author:** ![unknown](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/u/4bbf92/32.png) [@unknown](https://www.ruby-forum.com/u/unknown)\
**Post date:** [December 30, 2008, 12:10am UTC](https://www.ruby-forum.com/t/newbie-problem/156556/2 "2008-12-30T00:10:46Z")

</div>

You have to require ‘song.rb’ in your main.rb file. Near the top of your  
main.rb file place the following line (if they are both in the same  
directory)  
require ‘song.rb’

Scott

---

<div class="post-metadata">

**Author:** ![unknown](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/u/4bbf92/32.png) [@unknown](https://www.ruby-forum.com/u/unknown)\
**Post date:** [December 30, 2008, 12:11am UTC](https://www.ruby-forum.com/t/newbie-problem/156556/3 "2008-12-30T00:11:57Z")

</div>

removed\_email\_address@domain.invalid wrote:

> Chapter 3:
> 
> main.rb:  
> a\_song = Song.new(“Pie Jesu”, “Sarah Brightman”, “234”)  
> song.inspect

Have you require’d song.rb in you main.rb file?

It should look something like:

require ‘song’

a\_song = Song.new(“Pie Jesu”, “Sarah Brightman”, “234”)  
song.inspect

HTH

Matt

---

<div class="post-metadata">

**Author:** ![unknown](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/u/4bbf92/32.png) [@unknown](https://www.ruby-forum.com/u/unknown)\
**Post date:** [December 30, 2008, 1:35am UTC](https://www.ruby-forum.com/t/newbie-problem/156556/4 "2008-12-30T01:35:35Z")

</div>

Thank you. The require statement doesn’t get mentioned until about  
fifty pages farther on. 🙂

On Mon, 29 Dec 2008 18:09:47 -0500, Scott Lillibridge

---

<div class="post-metadata">

**Author:** ![unknown](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/u/4bbf92/32.png) [@unknown](https://www.ruby-forum.com/u/unknown)\
**Post date:** [December 30, 2008, 5:35am UTC](https://www.ruby-forum.com/t/newbie-problem/156556/5 "2008-12-30T05:35:24Z")

</div>

- [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) (01:30) schrieb:

> Thank you. The require statement doesn’t get mentioned until about  
> fifty pages farther on. 🙂

The example doesn’t talk about separate files. That’s why it doesn’t  
mention require.

mfg, simon … l
