나는 야후로부터 주식 시세를 가져 오는 루비 프로그램을 구성하고있다. 그것은 하나 개의 재고를 위해 잘 작동하지만 내가 주식을 내 배열을 통해 루프하려고 할 때 다음과 같은 오류 얻을 : 아래 정의되지 않은 지역 변수 또는 메소드 NameError
nyahoo.rb:20:in `<main>': undefined local variable or method `stock' for main:Object (NameError).
나는 내가 뭘 잘못에 대한 모든 입력에 대한 감사하게 될 것입니다 코드입니다.
감사
require 'rubygems'
require 'nokogiri'
require 'open-uri'
symbol = ['ARRS','BCST']
symbol.each do |s|
@page = Nokogiri::HTML(open("http://finance.yahoo.com/q?s=#{s.upcase}&ql=1"))
end
def marketCap(stock)
return @page.xpath("//td[@class='yfnc_tabledata1']")
end
ask = marketCap(stock)[3].text.split('x')
puts ask[0]
오류 메시지는 "'stock'라는 변수 나 메소드가 없으며'ask = marketCap (stock) ..'행 (# 20)을 참조하고 있습니다. 식별자가 매개 변수로만 나타나므로 제공된 코드를 제공하는 것에 동의해야합니다. 배열은 그 배열과 아무 관련이 없습니다. 이는 추가 프로그래밍 오류입니다. – user2246674
여러 페이지를 가져 와서 매번 결과로'@page'를 덮어 쓰기 때문에 이것은 의도 한대로 작동하지 않습니다. – tadman