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

Объедините эти два, и у вас есть свой ответ. –

+0

нет быстрого способа открыть и добавить одну запись? У меня есть несколько сотен записей. –

ответ

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 - это язык сериализации, и нет смысла пытаться манипулировать им напрямую. Нет более простого способа (который я знаю), который не ужасно подвержен ошибкам.

Смежные вопросы