2013-02-22 3 views
0

나는 해시 데이터의 구조를 가질 수 없습니다 :루비 해시 - 루프 데이터는

[{"name"=>"Peter", "surname"=>"Green"}, {"name"=>"Jane", "surname"=>"Miller"}] 

하지만, 예를 들어,이 해시 작업을하려고하면

puts hash.count # returns nothing 
hash.each do |data| 
    puts data.name # => undefined method `name' for #<Hash:0x00000104bcf9f8> 
end 

를 내가 놓친 거지 무엇 ?

답변

3

Array#count은 요소 수를 반환해야하지만 length 또는 size을 사용하는 것이 더 자연 스럽습니다. Hash에는 name 메서드가 없습니다.

puts hash.length 
hash.each do |data| 
    puts data["name"] 
end 

그런데 hash은 실제로 배열이며 혼란 스럽습니다.

+0

오, 고마워, 나는 길을 잃었다. – user984621