0
我是新来的红宝石,并提前道歉,因为我强烈怀疑我错过了这里真正明显的东西。但..如何存储从哈希动态创建的对象?
我想基于哈希数组动态地创建对象。但是,我如何存储对象?
如果我创建只有一个,我会做一个变量赋值,象这样:
h = PuppetNode.new(hash)
print h.hostname # foo.bar.com
但怎么样?:这里
array_of_hashes.each { | hash |
h = PuppetNode.new(hash)
}
这将导致“H”对象被覆盖不会吗? 我想我可以尝试从哈希中提取某些内容以动态地命名该变量,但似乎这是不必要的,因为各种实例变量标出了每个对象的独特性。
我真的需要使用变量吗?如果不是,我如何创建/存储对象。如果是这样,我怎样才能动态地设置变量名称而不痛苦的正则表达式使用?
在此先感谢
你想要什么输出是完全的,我不清楚。 – Anthony
(在我的代码示例中更正了错误)想象一下'array_of_hashes'是三个哈希值。我如何得到三个对象,我可以用我在第一个例子中的相同方式引用它,其中h.hostname – spoovy
'nodes = array_of_hashes.map {| hash | PuppetNode.new(hash)}'会产生一个'PuppetNode'对象数组。然后你可以通过'p nodes [0] .hostname'来访问它们。 – Anthony