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 に答える