2013-12-15 2 views
0

저는 Ruby를 처음 접해서 로프를 배우려고합니다. Twitter API에 대한 호출에서 반환 된 객체가 있습니다. 아래의 사용자를 반복하여 각기 다른 속성 (예 : id, : screenname 등)을 인쇄 할 수 있습니다.이 Object.inspect 결과를 이해하는 방법?

자세히 알아두면 트위터에서 팔로워입니다. 그래서 객체가 "팔로워"라고하며 이것이 내가

followers.inspect의 요지를 검사 ... "followers.inspect"를 얻기 위해 전화 드렸습니다 어떤 것은 여기에 있습니다 : https://gist.github.com/anonymous/7966898/raw/938a0048d08f44415229b98a1adef96c4946ce8d/gistfile1.txt

내 문제 이 .inspect 인쇄물이 내가 찾는 대상과 일치하는 방식을 파악하는 데 어려움을 겪고 있다는 것입니다.

그래서 이것이 통해 일을하려고 작성한 코드 ...

followers.users.each do |i| 
    puts "#{i.name} has user id #{i.id_str}" 
end 

내가지고있어 오류가있는 방법이라는 사용자가 없다는 것입니다.

죄송합니다. 매우 간단한 질문이지만 방금 막혔습니다.

답변

0

최대한 빨리 볼 수있는 한 객체 @attrs의 키가 :users 인 해시가 포함되어 있습니다. '어쩌면 당신은 또한 모든 사용자는 방법과하지 객체, 해시,하지만 내 루비는 약간 녹슨 때문에 i[:name]를 사용해야합니다

followers.attrs[:users].each do |i| 
    puts "#{i.name} has user id #{i.id_str}" 
end 

, 그래서 나는 돈 : 그래서, 그것은 무언가 같이해야한다 키가 해시에있을 때 해당 메소드가 자동으로 사용 가능한지 안다. 어쨌든

: nameofhash[:key]

[{:key => "value"},{:key => "value"}]는 두 개의 별도의 해시와 배열을 의미합니다 : {:key => "value"} 검사에서은 당신이 같은 접근 것으로, 키와 값이 해시 있다는 것을 의미한다.

+0

빠른 응답을 보내 주셔서 감사합니다. 그러나 작동하지 않는 것 같습니다. 나는 코드를 베어 본 (beare bones)에 조금씩 잘라 냈다. 여기에 내가 넣은 것은 ... followers.attrs [: users] .each do | i | "# {i.inspect}" end 참고 : 나는 sinatra에서 이것을 사용하고 있으므로 puts ...를 사용하지 않아도됩니다. 지금 받고있는 오류는 "NoMethodError at/followers/toast # 에 대해 정의되지 않은 메서드'bytesize '입니다. – Brad