기본 레벨의 첫 번째 질문 - Ruby에서 초기화되지 않은 상수 오류의 의미는 무엇입니까? 나는 약간의 문맥을 제공하는 데 도움이된다면 객관적인 배경에서왔다.Mechanize 래퍼를 사용하여 레일 콘솔과 irb에서 단위 화 된 상수 오류
두 번째로 앞서 언급 한 오류가 발생하는 레일에서 레이크 작업을 실행하고 있습니다. 특히, Tor 프록시를 통해 자동화 된 탐색을 허용하는 Mechanize 래퍼 인 'tor-privoxy'gem을 사용할 때 오류가 발생합니다. 내가 IRB에서이 같은 코드를 실행하는 경우, 그것은 초기화되지 상수 오류가 발생하지 않습니다, 다른 한편으로 https://github.com/pirj/tor-privoxy
agent ||= TorPrivoxy::Agent.new '127.0.0.1', '', {8118 => 9050} do |agent|
sleep 10
puts "New IP is #{agent.ip}"
page = agent.get('https://www.example.com/')
end
>> New IP is 72.141.125.115
>> NameError: uninitialized constant Net::HTTP::Persistent::SSLReuse::HTTPResponse
from /Library/Ruby/Gems/1.8/gems/net-http-persistent-2.3.3/lib/net/http/persistent/ssl_reuse.rb:115:in `connect'
from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/net/http.rb:553:in `do_start'
from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/net/http.rb:548:in `start'
from /Library/Ruby/Gems/1.8/gems/net-http-persistent-2.3.3/lib/net/http/persistent.rb:405:in `connection_for'
from /Library/Ruby/Gems/1.8/gems/net-http-persistent-2.3.3/lib/net/http/persistent.rb:616:in `request'
from /Library/Ruby/Gems/1.8/gems/mechanize-2.1/lib/mechanize/http/agent.rb:264:in `fetch'
from /Library/Ruby/Gems/1.8/gems/mechanize-2.1/lib/mechanize.rb:319:in `get'
from /Library/Ruby/Gems/1.8/gems/tor-privoxy-0.1.1/lib/tor-privoxy/agent.rb:16:in `send'
from /Library/Ruby/Gems/1.8/gems/tor-privoxy-0.1.1/lib/tor-privoxy/agent.rb:16:in `method_missing'
from (irb):4
from /Library/Ruby/Gems/1.8/gems/tor-privoxy-0.1.1/lib/tor-privoxy/agent.rb:11:in `call'
from /Library/Ruby/Gems/1.8/gems/tor-privoxy-0.1.1/lib/tor-privoxy/agent.rb:11:in `initialize'
from (irb):1:in `new'
from (irb):1
:
나는 GitHub의에서 제공하는 다음 예제 코드를 사용하고 있습니다. 내 보석 파일에 'tor-privoxy'가 포함되어 있는지 확인하고 '번들 설치'명령을 실행했습니다.
이 업데이트가 포함 된 net-http-persistent 2.7이 이미 설치되어 있습니다. Mechanize는이 gem @ 2.5 이상이 필요합니다. 이 문제를 완화 시켜서는 안됩니까? –
이전 버전을 모두 제거하십시오. – phoet