NameError problem

Hi. I’m sure it’s been asked before, but I can’t find the specific
answer. Basically I am doing the following…

1.Created a ruby file Person.rb

class Person

def initialize(name,age)
@name = name
@age = age

def name
return @name

def age
return @age


  1. I then run it

ruby Person.rb

  1. Then when I try to instansiate a person object…

(in irb mode) p1 =“John”,30)

I get the following error…

NameError: uninitialized constant Object::Person

I don’t understand what I’m missing.


Step 2 won’t make your script available to irb. So until your script
does something else, step 2 won’t do anything.

Step 3, in irb you need to:

require ‘person’
p =‘John’, 30)

Alternatively, you can invoke irb with the -r option:

$ irb -r yourlibrary

One more thing which you should know is that you do not need to specify
return statement if it’s the last statement of the method in ruby. So
instead of:

def name
return @name

You can write :

def name


and if your getter and setter is only generic you could use

attr_reader :name #for reading
attr_writer :name #for writing
attr_accessor :name #for both

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs