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 に答える