2011-11-24 3 views
0

나는 다음과 같은 루비 해시가 값을 표시하는 방법 :루비 해시에서

values = [ {"FA1": [{"Act 1": "A"},{"Act 2": "A"}] } ] 

내가 현재이

cells = "[Act 1  A],[Act 2  B]" 

같은 문자열을 얻을 수있는 값의 배열을 반복 할 필요를, 내가 노력하고를 이 : 나에게

의 가치를 제공

values[0]['FA1'].each do |key, val| 
    cells = [#{key} #{val}] 
end 

#{key} as Act 1 A and #{val} as empty 

그리고이 값을 ','로 구분 된 변수에 어떻게 추가 할 수 있습니까?

+0

는, 그것이이다 해시를 포함하는 배열을 포함하는 해시를 포함하는 배열입니다. –

+0

그것은 매우 정확하게 말합니다. 첫 번째 요소에 대해 작동하는 – verdure

답변

2

을 그것은 이상한 어쨌든 ...

cells = [] 
values[0]['FA1'].each do |hash| 
    hash.keys.each { |key| cells << "[#{key} #{hash[key]}]" } 
end 
cells.join(",") 

이 생성됩니다

해시 아니다
"[Act 1 A],[Act 2 A]" 
+0

매력처럼 작동했습니다! 고마워요 :) – verdure

0

이런 식으로 뭔가 작업을해야합니다 :

values[0]['FA1'].first.map do |key, val| 
    "#{key} #{val}" 
end.join(",") 
+0

,하지만 .first를 제거하면 val 값이 표시되지 않습니다. – verdure

관련 문제