2016-08-08 7 views
0

私はいくつかのデータを保存したいファイルがあります。Ruby:ファイルに行を追加する

IRBを使用して、ファイルに異なる行を追加できます。しかし、ファイルに書き込まれたRubyスクリプトを使用して、私は問題があります。

私は行を書くことができるはずですが、スクリプトを起動してメソッドを再利用すると、次の行にコンテンツを追加するのではなく、ファイル内の内容を上書きします。

def create_new_account 
    puts "Set the account's name" 
    @account_name = gets 
    puts "New account's name: #{@account_name} 
    open("accounts.txt","w+") do |account_file| 
     account_file.write "ac;#{@account_name}\n" 

    end 
end 

私はこの方法openの異なるパラメータに見ていたが、それはありませんように思えます。 さらに、writeの代わりにputsを試しましたが、違いはなく、常に同じ問題です。

誰かがコードの何が間違っているのか理解できますか?

おかげ

+0

http://stackoverflow.com/questions/3682359/what-are-the-ruby-file-open-modes-and-optionsしかし、あなたが追加する必要があります – Doon

答えて

0

はそう

open('accounts.txt', 'a+') 

ようappend modeでファイルを開いてみてください、既存のデータを上書きするようにそうでない場合はファイルが開かれます。

"a" - 書き込み専用で、各書き込み呼び出しはファイルの最後にデータを追加します。 ファイルが存在しない場合、書き込み用の新しいファイルを作成します。

関連する問題