我在IRB中测试我的代码,我输入了这个:
class be
def new_text
text = gets()
end
def show_text
puts "#{text}"
end
end
当我输入new_text时,它工作正常,但当我输入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>'
如何解决这个问题的想法?
答案 0 :(得分:6)
将文本更改为实例变量:
class Be
def new_text
@text = gets()
end
def show_text
puts "#{@text}"
end
end
您收到错误是因为show_text
方法正在尝试访问名为@text
的变量,该变量尚未在原始示例中定义。