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]
어떻게 해결할 수 있습니까?
당신은 그것을 select
위해 필요 합니다 :
p hash.select { |_, value| value['partition'] == 'baas' }
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다