我想我误解了关于下面代码的哈希:
require 'rest-client'
require 'json'
def get_from_mashable
res = JSON.load(RestClient.get('http://mashable.com/stories.json'))
res["hot"].map do |story|
s = {title: story["title"], category: story["channel"]}
add_upvotes(s)
end
end
def add_upvotes(hash)
hash.map do |story|
temp = {upvotes: 1}
if story[:category] == "Tech"
temp[:upvotes] *= 10
elsif story[:category] == "Business"
temp[:upvotes] *= 5
else
temp[:upvotes] *= 3
end
end
hash.each {|x| puts x}
end
get_from_mashable()
我从中得到以下错误:
ex_teddit_api_news.rb:16:in `[]': no implicit conversion of Symbol into Integer (TypeError)
我正在尝试将一个upvotes
键和相应的整数值添加到从 .json 对象创建的每个哈希中get_from_mashable
。在循环中,我不会尝试删除每个哈希的内容并仅用新的键/值对替换它,我感觉我可能正在这样做。
任何帮助表示赞赏。