我需要将提供的哈希值转换为可读的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
后才能使用它。我尝试使用可枚举方法collect
,但当需要迭代值(另一个哈希)时变得困惑。
我试图以Ruby中将哈希转换为字符串作为参考。我的想法是将其馈入YAML::load
,这样就会生成我想要的YAML。
to_yaml
不是 Hash 或 Object 或任何类的默认部分。你必须在脚本中的某个地方,或者在你需要的东西中require 'yaml'
,才能让 YAML 扩展 Object、Hash 和其他方法。请参见我的回答进行编辑。 - the Tin Man