1

我正在尝试从 Hacker News 获取新闻并将链接的标题和 URL 写入 HTML 文件。但是,只有第一个链接正在编写,其他链接没有。我究竟做错了什么?

require 'httparty'

def fetch(source)
  response = HTTParty.get(source)
  response["items"].each do |item|
    return '<a href="' + item["url"] + '">' + item["title"] + '</a>'
  end
end

links = fetch('http://api.ihackernews.com/page')

File.open("/tmp/news.html", "w") do |f|
  f.puts links
end
4

1 回答 1

4

在这种情况下,您不应该使用return关键字。它提前结束该方法并仅返回第一个链接。改用这个:

require 'httparty'

def fetch(source)
  response = HTTParty.get(source)

  # convert response['items'] array to array of strings
  response["items"].map do |item| 
    '<a href="' + item["url"] + '">' + item["title"] + '</a>'
  end
end

links = fetch('http://api.ihackernews.com/page')

links.length # => 30
于 2012-04-20T22:30:02.967 回答