ruby:如何迭代yml并将元素添加到数组中

时间:2017-06-21 19:11:45

标签: arrays ruby

我在.yml中有一个哈希,我想迭代然后将它的元素添加到startup_ports的数组中。

E.g。 .yml:

instances:
  instance1:
    startup_port: 8811
    shutdown_port: 8822
  instance2:
    startup_port: 9911
    shutdown_port: 9922

在我的Ruby代码中:

details['instances'].each do |instancename, attribs|
startup_port = attribs[:startup_port]

我想在这里创建一个数组,为两个实例存储startup_port

1 个答案:

答案 0 :(得分:2)

我们假设您的文件名为example.yml

# assuming your file is in rails root
contents = YAML.load_file('example.yml')
contents['instances'].collect{|key, value| value['startup_port']}
=> [8811, 9911]

<强>更新

追加一个字符串

contents['instances'].collect{|key, value| "VERSION_#{value['startup_port']}"}