Ответ 1
Хорошо, так ли это ваш файл YAML?
Company1:
name: Something1
established: 2000
Company2:
name: Something2
established: 1932
Теперь этот файл YAML на самом деле представляет хеш. У этого есть два ключа, то есть Company1, Company2 (потому что они являются ведущими вхождениями, а подзаголовки (имя и установленные) отступают под ними). Значение этих двух ключей снова является хешем. У этого хэша также есть 2 ключа, а именно имя и установлены. И они имеют такие значения, как Something1 и 2000 соответственно.
Итак, когда вы это сделаете,
config=YAML.load_file('file.yml')
И распечатать config (который представляет собой хэш, представляющий содержимое файла YAML), используя
puts config
вы получаете следующий результат:
{"Company1"=>{"name"=>"Something1", "established"=>2000}, "Company2"=>{"name"=>"Something2", "established"=>1932}}
Итак, у нас есть объект Hash, как описано в файле YAML.
Использование этого хэша довольно прямолинейно.
Поскольку каждое название компании и год входят в отдельный хеш, хранящийся в внешнем хеше (company1, company2), мы можем перебирать компании. Следующий код печатает хеш.
config.each do |company,details|
puts company
puts "-------"
puts "Name: " + details["name"]
puts "Established: " + details["established"].to_s
puts "\n\n"
end
Итак, на каждой итерации мы получаем доступ к каждому (ключ, значение) хэша. Это в первой итерации мы имеем company
(key) как Company1
и details
(значение) как {"name"=>"Something1", "established"=>2000}
Надеюсь, что это помогло.