从Sublime Text 2获取“NameError:undefined局部变量或方法”

时间:2013-04-16 22:55:30

标签: ruby

我正在尝试运行这个简单的程序:

puts " Hello, what's you're name?"
name  = gets.chomp
puts 'Hello,'+ '' + name+ '.'

if name =='Chris'
  puts 'What a lovely name!'
end

但我一直收到输出错误:

1.9.3-p392 :003 > ruby exerise72.rb
NameError: undefined local variable or method `exerise72' for main:Object
    from (irb):3
    from /usr/local/rvm/gems/ruby-1.9.3-p392/gems/railties-3.2.12/lib/rails/commands/console.rb:47:in `start'
    from /usr/local/rvm/gems/ruby-1.9.3-p392/gems/railties-3.2.12/lib/rails/commands/console.rb:8:in `start'
    from /usr/local/rvm/gems/ruby-1.9.3-p392/gems/railties-3.2.12/lib/rails/commands.rb:41:in `<top (required)>'
    from script/rails:6:in `require'
    from script/rails:6:in `<main>'

我不明白什么是错的。

2 个答案:

答案 0 :(得分:2)

您正尝试在Rails控制台中为shell发出命令。键入quit,然后按返回输入退出并返回正常的shell提示符。

然后你可以尝试:

ruby exerise72.rb

了解操作系统shell和IRB / Rails控制台之间的区别以及最终的其他任何shell或命令行界面非常重要非常重要。它们非常强大,并且不知道你在做什么,或者你在做什么,这是一个随机混乱你的磁盘,丢失文件和意外删除东西的好方法。

答案 1 :(得分:1)

在ruby控制台外执行ruby命令。 ruby控制台(irb)用于执行内联命令。如果要执行完整的脚本(exerise72.rb程序),则必须以cmd,bash或类似方式执行。