2011-12-17 43 views
1

我在测试我的代码在IRB和我在这类型的:为什么我的课不用红宝石工作?

class be 
    def new_text 
    text = gets() 
    end 
    def show_text 
    puts "#{text}" 
    end 
end 

当我输入的新文字,它的工作,但是当我在show_text键入它想出了一个错误:

NameError: undefined local variable or method `text' for #<BE:0xd3cc08> 
     from (irb):14:in `show' 
     from (irb):14:in `show' 
     from C:/Program Files/Ruby1.9.2/bin/irb:12:in `<main>' 

任何如何解决这个问题的想法?

+1

使用'CamelCase'作为类名称 – NARKOZ

+1

如果您不使用'CamelCase',它甚至不会编译 –

回答

6

更改文本是一个实例变量:

class Be 
    def new_text 
    @text = gets() 
    end 
    def show_text 
    puts "#{@text}" 
    end 
end 

你得到的错误,因为show_text方法试图访问一个名为它并没有在原来的例如被定义@text变量。