Обновление YML на рабочем сервере - PullRequest
0 голосов
/ 28 февраля 2012

Я использую файл 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 голосов
/ 28 февраля 2012

Объедините то, что у вас есть, и это то, что вы должны сделать:

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...