为什么在Ruby中返回零

时间:2013-01-25 07:13:59

标签: ruby file-io irb rubymine gets

我有一个简单的方法

def save_logline
  print "What's the name of the movie"
  movie_name = gets.strip
  print "And what is your precious logline?"
  logline = gets.strip
  File::open(movie_name + '.txt', 'w') do |f|
    f.write(logline)
  end
end

无论何时我运行代码,我都会收到第一个提示,其中我插入了电影的名称,但是一旦按下回车键,第二个打印就被调用,给我这个消息。

And what is your precious logline?=> 0

文件已写入,但我无法在文本文件中插入任何内容。我的逻辑有什么问题,我该如何解决这个问题?我在RubyMine中使用irb和Ubuntu。

编辑:看来由于其他用户对我的代码工作的响应以及我在不同开发机器上的测试,我的代码只是在那台机器上没有工作。我唯一可以说的是我使用的是RubyMine的irb控制台。现在的问题必须是它是一个RubyMine问题还是我的开发机器存在更大的问题?

最终编辑:我检查了我的第二个具有RubyMine的comp,看起来它在RubyMine的irb控制台中也不起作用。我将把这个错误发给RubyMine并在一两天内给Jeremy一些信任,除非有人知道为什么RubyMine的irb表现得很时髦。

1 个答案:

答案 0 :(得分:4)

您的代码有效。 0f.write的返回值。它说它为你的文件写了零字节,因为你没有给它任何输入。

编辑:也许你偶然按两次输入......