可能重复:
Why isn't 'gets' working in my Ruby script when I run from TextMate?
我试图运行一个文件(p015elsifex.rb)
在Mac上使用Textmate(Snow Leopard)。
当我尝试运行代码时,出现错误,内容如下: NoMethodError:私有方法'chomp'调用nil:NilClass 位于p015elsifex.rb第6行的顶层
所以它到达第6行,而不是要求键盘输入,它就退出了。
以下是代码:
#elsif example
#Original example
puts "Hello, what's your name?"
STDOUT.flush
name = gets.chomp
puts 'Hello, ' + name + '.'
if name == 'Satish'
puts 'What a nice name!!'
else
if name == 'Sunil'
puts 'Another nice name!'
end
end
# Modified example with elsif
puts "Hello, what's your name?"
STDOUT.flush
name = gets.chomp
puts 'Hello, ' + name + '.'
if name == 'Satish'
puts 'What a nice name!!'
elsif name == 'Sunil'
puts 'Another nice name'
end
# Further modified
puts "Hello, what's your name?"
STDOUT.flush
name = gets.chomp
puts 'Hello, ' + name + '.'
我该如何解决这个问题?
答案 0 :(得分:2)
在Terminal
窗口中运行程序,而不是在TextMate中运行。作为后台任务,它显然没有标准输入。
我相信你最终可以让TextMate配置成你想做的,但现在只是保持简单。