2014-01-06 12 views
0

정말 간단한 질문이지만 작동시키지 못하고 있습니다.해시를 통한 루프 루프

Property은 아래에 하나만 포함되어 있지만 Properties에는 하나 이상있을 수 있습니다. 이 해시를 반복하고 각각 (Property) 만 표시하려면 어떻게해야합니까?

{"GetPropertiesResponse"=>{"Properties"=>{"Property"=>{"Breakfast"=>"IN", "Country"=>"GB", "Currency"=>"GBP", "Id"=>"1834", "Name"=>"Hotel Name"}}}} 

내가보기에이 시도했습니다

<% @json['GetPropertiesResponse']['Properties']['Property'].each do |property| %> 
    <%= property['Name'] %> 
<% end %> 

는이 오류를 받고 있어요 :

당신이 경우 정수

+0

그래서 ... 답변을 수락 하시겠습니까? 그들은 당신을 위해 일 했습니까? – Dylan

답변

0

에 문자열의 암시 적 변환하지 하나 이상의 property 해시가있을 수 있다고 말하면 작동합니다.

당신이 일을해야 키

<% @json['GetPropertiesResponse']['Properties'].each_value do |value| %> 
    <%= value['Name'] %> 
<% end %> 

을 사용하는 것으로 나타나지 않기 때문에

+0

그래, 해봤지만 속성의 이름이 출력되지 않고 이유를 이해할 수 없습니까? 아무런 오류가 없지만 – tommyd456

+0

오류가 있습니까? 아니면 출력이 없습니까? – AbM

+0

'property [ 'Name']'출력 없음, 오류 없음 – tommyd456

0

16,

<% @json['GetPropertiesResponse']['Properties'].each do |property, value| %> 
    <%= value['Name'] %> 
<% end %> 
나는이 해시에 #each_value을 사용합니다. 두 번째 라인은 <%= value['Name'] %>이고, <%= property['Name'] %>

P.S.입니다. 다른 메모에서 나는 왜 당신이 속성 해쉬 안에서 "속성"키를 사용하고 있는지 알지 못한다. 그것은 바로 이런 방식으로 자신을 혼란시키는 좋은 방법 인 것 같습니다. Properties 해시 내의 키는 설명하는 속성에 고유 한 것이어야합니다. 각각은 속성이 될 것이므로 문자열 "Property"는 설명하거나 구별하는 데 도움이되지 않습니다.