Преобразование массива / хэша в YAML в Ruby on Rails
Я хочу построить следующее форматирование YAML из массива / хэша:
Name:
gender:
- female
nationality:
- german
- danish
прямо сейчас у меня есть такой массив:
names = ["Abbie", "Abeline", "Abelone"]
каким будет самый простой способ добраться из этого массива в YAML?
Я попытался преобразовать его в хэш, добавив значения для пола и национальности:
names.each do |name|
(META_HASH ||= Hash.new) = name => { gender: 'female', nationality: ['german', 'danish'] }
end
Это, однако, просто дает мне синтаксическая ошибка. Любая помощь в преобразовании этого будет очень признательна!
1 ответов
> require 'yaml'
> names = ["Abbie", "Abeline", "Abelone"]
=> ["Abbie", "Abeline", "Abelone"]
> puts names.to_yaml
---
- Abbie
- Abeline
- Abelone
=> nil
> h = {:name => { gender: 'female', nationality: ['german', 'danish'] }}
=> {:name=>{:gender=>"female", :nationality=>["german", "danish"]}}
> puts h.to_yaml
---
:name:
:gender: female
:nationality:
- german
- danish
=> nil
> a = names.map { |n| { n => { gender: 'female', nationality: ['german', 'danish'] } } }
> puts a.to_yaml
---
- Abbie:
:gender: female
:nationality:
- german
- danish
- Abeline:
:gender: female
:nationality:
- german
- danish
- Abelone:
:gender: female
:nationality:
- german
- danish
=> nil