Ruby on Rails Тенденции Twitter - TypeError = не можете преобразовать строку в целое число? - PullRequest
0 голосов
/ 14 ноября 2011

Я получаю действительно странное сообщение об ошибке в моем приложении.В моем контроллере у меня есть:

require 'open-uri'
require 'json'
class NoticiasController < ApplicationController
  def index
    url = 'https://api.twitter.com/1/trends/daily.json'
    buffer = open(url, "UserAgent" => "Ruby-Wget").read
    # convert JSON data into a hash
    @result = JSON.parse(buffer)
    end
  end

и в представлении у меня есть

<div>
  <% for news in @result['trends'] %> 
  <p><%= news['name'] %></p>
  <% end %>
</div>

, но я получаю «TypeError: не могу преобразовать строку в целое число».

Что я делаю не так?

1 Ответ

2 голосов
/ 14 ноября 2011

results['trends'] - карта отметки времени => [тренды].

Вам нужно выбрать дату тренда, а затем выполнить итерацию по массиву трендов.

ruby-1.9.2-p290 :011 > result['trends'].keys.each { |k| puts k }
2011-11-13 17:00
2011-11-13 19:00
2011-11-13 14:00
2011-11-13 16:00
2011-11-13 18:00
2011-11-13 15:00
# etc.

ruby-1.9.2-p290 :022 > result['trends']["2011-11-13 17:00"].each { |t| p t["name"] }; nil
"#myweddingsong"
"#mydivorcesong"
"#ThingsPeopleShouldntDo"
"GOOD LUCK 1D"
# etc.

Например, чтобы получить названия последних тенденций:

> ts = result['trends'].keys.sort.last
"2011-11-13 23:00" 
> latest_trend_names = result['trends'][ts].collect { |t| t['name'] }
> latest_trend_names.each { |tn| p tn }
"#myweddingsong"
"#mydivorcesong"
"#ThingsPeopleShouldntDo"
"I'm a Celeb"
"HEADLESS GAGA"
"CHRIS BROWN IS A LEGEND"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...