0
웹 사이트에서 가져온 정보를 출력하는 루프가 있습니다. 정보를 읽을 수있는 방식으로 표시하려면 내보기 페이지에 표시 될 배열에 정보를 삽입하십시오. 그러나 배열은 검색된 모든 값을 저장하지 않고 대신 마지막 값만 저장합니다. 결국 배열에 삽입 된 마지막 값만 표시 할 수 있습니다. 나는 홈 페이지에 갈 때배열은 루비의 마지막 값을 레일에만 저장합니다.
내 컨트롤러 파일 ...보기 home.html.erb 파일에서
def home
scrap()
end
private
def scrap
require 'rubygems'
require 'nokogiri'
require 'open-uri'
time = Time.new
month = I18n.t("date.abbr_month_names")[time.month]
day = time.day
@strings = []
#United States
cities = [
"sfbay", "losangeles", "athensga", "phoenix", "santabarbara", "denver",
"panamacity", "miami", "austin", "bakersfield", "keys", "newyork"
]
cities.map do |city|
#Search Terms
search_terms = ["mechanic", "car", "tech"]
search_terms.map do |term|
escaped_term = CGI.escape(term)
url = "http://#{city}.craigslist.org/search/jjj?query=#{escaped_term}&catAbb=jjj&
srchType=A"
doc = Nokogiri::HTML(open(url))
doc.css(".row").map do |row|
date = row.css(".itemdate").text
a_tag = row.css("a")[0]
text = a_tag.text
link = a_tag[:href]
@strings == []
if date = "#{month} #{day}"
@strings << "#{date} #{text} #{link}"
end
end
end
end
end
...
<%= raw(@strings.join('<br />')) %>
을 그래서, 난 단지 표시를 해요 배열에 마지막에 삽입 된 값. 무엇이 잘못되었으며 어떻게 수정합니까?
흠, 변경해야 할 내용이 있지만 내 페이지는 여전히 반환되지 않습니다. 편집 : 작동하도록했습니다. 도와 주셔서 감사합니다. – jason328