我有一个像这样的嵌套散列,其中它可以有50个值:
{
"pool1"=>{"name"=>"my-pool", "partition"=>"Common"},
"pool2"=>{"name"=>"test-2", "partition"=>"baas"}
}我正在尝试获取所有具有密钥"partition"=>"baas"的池。如下所示:
{"pool7"=>{"name"=>"test-7", "partition"=>"baas"}
{"pool12"=>{"name"=>"test-12", "partition"=>"baas"}
{"pool18"=>{"name"=>"test-18", "partition"=>"baas"}}这就是我想要做的。
def test(partition_name,hash)
a = 1
b = partition_name
c = {}
d = 1
partition_hash.each do |i|
f = i.fetch(":pool#{a}",{}.fetch(:partition, false))
if f = b
c["pool#{d + 1}"] = i
d = d +1
end
a = a +1
end
end我现在得到一个错误,如下所示:
[no implicit conversion of String into Integer]
我该如何解决这个问题呢?
发布于 2019-10-17 18:56:22
为此,您只需要使用select:
p hash.select { |_, value| value['partition'] == 'baas' }https://stackoverflow.com/questions/58430890
复制相似问题