#ruby-on-rails
#ruby-on-rails
Вопрос:
Как вы форматируете данные, выводимые при звонке в Twitter (например). Мои выходные данные в следующем формате:
<#Hashie::Mashcontributors=nil coordinates=nil created_at="Wed May 04 18:57:32 0000 2011" favorited=false geo=nil id=65852579048980480 id_str="65852579048980480" in_reply_to_screen_name=nil in_reply_to_status_id=nil in_reply_to_status_id_str=nil in_reply_to_user_id=nil in_reply_to_user_id_str=nil place=nil retweet_count=0 retweeted=false source="web" text="what's happening?" truncated=false user=<#Hashie::Mash contributors_enabled=false created_at="Wed May 04 09:17:26 0000 2011" default_profile=true default_profile_image=true description=nil favourites_count=0 follow_request_sent=false followers_count=0 following=false friends_count=0 geo_enabled=false id=292829579 id_str="292829579" is_translator=false lang="en" listed_count=0 location=nil name="PSTest" notifications=false profile_background_color="C0DEED" profile_background_image_url="http://a3.twimg.com/a/1304436748/images/themes/theme1/bg.png" profile_background_tile=false profile_image_url="http://a1.twimg.com/sticky/default_profile_images/default_profile_0_normal.png" profile_link_color="0084B4" profile_sidebar_border_color="C0DEED" profile_sidebar_fill_color="DDEEF6" profile_text_color="333333" profile_use_background_image=true protected=false screen_name="PSTest4" show_all_inline_media=false statuses_count=8 time_zone=nil url=nil utc_offset=nil verified=false>>
Для меня, новичка, это просто выглядит как мусор!! Я пытаюсь отобразить последние 10 твитов от пользователей в моем приложении. Просто не знаю, с чего начать…
B
== редактировать ==
Чтобы отобразить только текст, я попробовал следующее.
<%= @user.twitter_token.timeline.each do |t| %>
<%= t.text %>
<% end %>
Хотя я не получаю ошибок, я вижу правильный вывод, но хэш все еще сохраняется после вывода. Не уверен, почему.
Спасибо
Ответ №1:
Hashie позволяет получить доступ к объектам, используя точечную нотацию (например, @tweet.created_at
вместо @tweet["created_at"]
.
Итак, предполагая, что опубликованный вами объект является @tweet
, вы могли бы сделать это:
@tweet.coordinates
# => nil
@tweet.user.name
# => "PSTest"
@tweet.text
# => "what's happening?"
Комментарии:
1. Спасибо за ответ. Если моя пользовательская модель содержит: @timeline = client.home_timeline. Должен ли я называть это плюс .coordiates на мой взгляд?
2. Он
client.home_timeline
возвращаетHashie::Mash
опубликованный вами объект, тогда да,@timeline.coordinates
это дало бы вам это значение.3. Отлично, я могу опубликовать первый твит, используя это. Как я могу создать цикл для перечисления последних 10 твитов? Вероятно, нужен учебник, но не знаю, что искать. Приветствия
4. PS. Добавил свою первую попытку к первоначальному вопросу. Еще раз большое спасибо.