2012-02-28 4 views
0

YMLファイルを使用して、簡単なデータを保存しています。プロダクションサーバでYMLを更新

私はYML作成することができます。

File.open("data.yml", "w") do |yaml| 
    yaml.write(@some_hash.to_yaml) 
end 

また、オープンYML:

path = File.expand_path(File.dirname(__FILE__)) 
@trivial_data = YAML.load_file("#{path}/../../../config/data.yml") 

をしかし、私は、ファイルを更新する方法がわかりません。私は開く方法

4: 
    agent_id: 332 
    last: Wade 
    first: Jason 
    suffix: Sr 
    rep_number: 2 

、およびYAMLファイルを更新:私は別の行を追加したいと言いますか?これはプロダクションサーバーでは良いアイデアですか?

+1

これらの2つを組み合わせて、あなたの答えがあります。 –

+0

ただ1つのレコードを開いて追加するだけの簡単な方法はありませんか?私は数百のレコードを持っています。 –

答えて

2

は、あなたが持っているものを組み合わせると、それはあなたが何をすべきかです:

path = File.expand_path(File.dirname(__FILE__)) 
trivial_data = YAML.load_file("#{path}/../../../config/data.yml") 
# ... manipulate data ... 
File.open("data.yml", "w") do |yaml| 
    yaml.write(trivial_data.to_yaml) 
end 

あなたがそれに書き込むことなく、ファイルに何かを追加することはできません。 YaMLはシリアライゼーション言語であり、直接操作しようとするのはあまり意味がありません。恐ろしいことにエラーが起こりにくい(私が知っている)簡単な方法はありません。

関連する問題