3

簡単な方法があります

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

コードを実行するたびに、映画の名前を挿入する最初のプロンプトが表示されますが、Enterキーを押すと、2番目のプリントが呼び出され、このメッセージが表示されます。

And what is your precious logline?=> 0

ファイルは書き込まれていますが、テキストファイルに何も挿入できません。私のロジックの何が問題になっていますか?これを修正するにはどうすればよいですか?私はUbuntuのRubyMineでirbを使用しています。

編集:私のコードが機能していることに対する他のユーザーの応答と、別の開発マシンでの私自身のテストのために、私のコードはその1台のマシンで機能していないようです。私が言える唯一のことは、RubyMineのirbコンソールを使用していたということです。問題は、RubyMineの問題なのか、それとも開発マシンにもっと大きな問題があるのか​​ということです。

最終編集:RubyMineを含む2番目のコンプを確認しましたが、RubyMineのirbコンソールでも機能しないようです。RubyMineにバグを発行し、RubyMineのirbがファンキーに動作している理由を誰かが知らない限り、1日か2日でJeremyにクレジットを与えるつもりです。

4

1 に答える 1

4

コードは機能します。はの0戻り値ですf.write。入力をしなかったため、ファイルにゼロバイトが書き込まれたと言っています。

編集:たぶんあなたは偶然にEnterを2回押しました...

于 2013-01-25T07:19:38.710 に答える