0

我想存储一些关于一些应用程序的配置信息,这样我就可以制作一个“应用程序抽屉”。我将信息存储在一个看起来像这样的数组中 -

[["page_view", {"path"=>"somepath/asdf/asdf", "name"=>"Page View"}], ["outage_impact", {"path"=>"newpath/asdf/asdf", "name"=>"Outage Impact"}]]

但是当我to_yaml在这个数组上使用时,我得到了这个输出:

--- 
- - page_view
  - path: somepath/asdf/asdf
    name: Page View
- - outage_impact
  - path: newpath/asdf/asdf
    name: Outage Impact 

理想情况下,我想要更像这样的东西:

page_view
  path: somepath/af/asdf
  name: blah
outage_impact
  name: blah
  path: adsf/adsf/asdf

我尝试查找有关 to_yaml 方法的更多信息,但它很少而且相差甚远。我认为我的数组可能需要进行不同的格式化,但我一直在猜测和检查一段时间无济于事。

我什至应该使用 to_yaml 方法还是另一种方法效果更好?

4

1 回答 1

1

将其转换为哈希然后使用to_yaml将给出与您的示例类似的输出(但---在开始时使用)

arr = [["page_view", {"path"=>"somepath/asdf/asdf", "name"=>"Page View"}], ["outage_impact", {"path"=>"newpath/asdf/asdf", "name"=>"Outage Impact"}]]

puts Hash[*arr.flatten].to_yaml

给出:

---
page_view:
  path: somepath/asdf/asdf
  name: Page View
outage_impact:
  path: newpath/asdf/asdf
  name: Outage Impact
于 2012-03-02T17:15:43.623 回答