【发布时间】:2013-07-08 17:26:55
【问题描述】:
我需要将下面提供的哈希转换为可读的 YAML。看起来我可以提供 YAML::load 一个字符串,但我想我需要先将它转换成这样的:
hostname1.test.com:
public: 51
private: 10
{"hostname1.test.com"=>
{"public"=>"51", "private"=>"10"},
"hostname2.test.com"=>
{"public"=>"192", "private"=>"12"}
}
我不确定如何有效地转换成该字符串。
我查看了 HASH 文档,但找不到 to_yaml 的任何内容。我通过搜索to_yaml 找到了它,当你require yaml 时它变得可用。我还尝试使用 Enumerable 方法collect,但是当我需要遍历值(另一个哈希)时感到困惑。
我正在尝试使用“Converting hash to string in Ruby”作为参考。然后我的想法是将其输入到YAML::load 中,这将生成我想要的 YAML。
【问题讨论】:
-
你读过Ruby的YAML documentation吗? "Yaml Cookbook at the YamlForRuby site 怎么样?另外,您提供的哈希无效。它应该是哈希数组还是哈希哈希?
-
您还应该提供代码来显示您尝试过的内容,以及对无效内容的说明。 -1 表示没有表现出任何努力。
-
添加了我在找到 to_yaml 方法之前所做的工作。
-
to_yaml默认情况下不属于 Hash 或 Object 或任何类。你HAVE到require 'yaml'脚本中的某个地方,或者你需要的地方,让YAML扩展对象、哈希和其他方法。请参阅我的答案的编辑。