2012-02-28 134 views
0

我正在使用YML文件来存储琐碎的数据。在生产服务器上更新YML

我可以创造阳明:

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

而且开阳明:

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

结合这两个,你有你的答案。 – 2012-02-28 00:45:29

+0

是否没有快捷方式来打开和添加单个记录?我确实有几百条记录。 – 2012-02-28 00:49:15

回答

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是一种序列化语言,尝试直接操作它并没有多大意义。没有简单的方法(我知道)并不是很容易出错。