2013-12-15 6 views
0

Я новичок в Ruby и пытаюсь изучить веревки. У меня есть объект, возвращенный из обращения к API Twitter. Я хотел бы пропустить следующие пользователи и иметь возможность распечатывать их различные атрибуты ... например: id,: имя экрана и т. Д.Как понять этот результат 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. Таким образом, это должно быть что-то вроде:

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

Может быть, вы также должны использовать i[:name], так как все эти пользователи также хэши, а не объекты с методами, но мой рубин немного ржавый, так что я не» t знать, будут ли эти методы автоматически доступны, когда ключ присутствует в хэше.

В любом случае: {:key => "value"} в инспектировать означает, что это хэш с ключами и значениями, которые вы получаете доступ как: nameofhash[:key]

[{:key => "value"},{:key => "value"}] означает, что это массив с двумя отдельными хэшей.

+0

Благодарим за быстрый ответ, но это, похоже, не работает. Я немного уменьшил код до его голых костей, и вот что я вложил ... followers.attrs [: users] .each do | i | "# {i.inspect}" конец Примечание: Я использую это в синатрах, поэтому мне не нужно использовать puts ... просто «». Ошибка, которую я получаю сейчас, это «NoMethodError at/followers/toast undefined метод' bytesize 'для # " – Brad

Смежные вопросы