2013-12-15 30 views
0

我是Ruby的新手,想要學習繩索。我有一個從調用返回到Twitter API的對象。我想循環瀏覽:users下面,並能夠打印出他們不同的屬性...如:id,:screenname等。如何理解這個Object.inspect結果?

順便說一句,這些都是Twitter上的追隨者。所以對象被稱爲「跟隨者」,這是什麼我打電話,以獲得檢查......「followers.inspect」

的followers.inspect的要點是在這裏: https://gist.github.com/anonymous/7966898/raw/938a0048d08f44415229b98a1adef96c4946ce8d/gistfile1.txt

我的問題是我很難弄清楚這個檢測結果是如何打印出來的,匹配我應該找的東西。

所以我寫來嘗試通過這個代碼...

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

我得到的錯誤是,有沒有一種方法被稱爲用戶。

對不起,我確定這是一個非常簡單的問題,但剛剛被卡住了!

回答

0

據我可以很快看到,你擁有的對象包含一個散列@attrs與關鍵:users。 所以,它應該是這樣的:

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

也許你還需要使用i[:name],因爲所有這些用戶也哈希,不與方法的對象,但我的Ruby是有點生疏,所以我不當密鑰出現在哈希中時,知道這些方法是否可以自動獲得。

總之:{:key => "value"}在檢查意味着,它與鍵和值的哈希,您訪問,如:nameofhash[:key]

[{:key => "value"},{:key => "value"}]意味着它有兩個獨立的哈希一個陣列。

+0

感謝您的快速響應,但似乎沒有工作。我已經減少了代碼到它的裸露的骨頭,這就是我所投入的... followers.attrs [:users] .each do | i | 「#{i.inspect}」 end 注意:我在sinatra中使用這個,所以我不需要使用puts ...只是「」。現在我得到的錯誤是「NoMethodError at/followers/toast 未定義的方法'bytesize'爲#」 – Brad