试图在ruby程序中创建一个bug。如何在不重写数据的情况下写入文件?

时间:2012-11-13 00:39:22

标签: ruby

尝试将错误登录到Ruby程序中,这样当我遇到错误时,我可以运行该程序,它会自动将错误写入文本文件。我能够将所有内容写入文件,但每次我输入一个新的bug都会覆盖文件,并且一次只能输入一个条目。

到目前为止,这是我的代码:

print "What is the error message? "
msg = "Error message: " + gets.chomp
print "What does the error mean? "
mean = "Error meaning: "+gets.comp
print "What resolved the error? "
resolved = "Error resolution: " + gets.comp
File.open('Bug_Log.txt', 'w') do |write|
        write.puts msg
        write.puts mean
        write.puts resolved
end

1 个答案:

答案 0 :(得分:7)

这种情况正在发生,因为您正在以“w”模式打开文件,该模式将覆盖文件,而不是“a”(“追加”)模式,该模式将附加到文件中已有的文件中。

尝试更改此行:

File.open('Bug_Log.txt', 'w') do |write|

到此:

File.open('Bug_Log.txt', 'a') do |write|