2012-07-18 2 views
0

기본 레벨의 첫 번째 질문 - 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'가 포함되어 있는지 확인하고 '번들 설치'명령을 실행했습니다.

답변

1

Mac에서 ruby로 작업하려면 rvm 또는 rbenv와 같은 도구를 사용하여 Ruby 설치를 관리하는 것이 좋습니다.

오류는 이미 알려진 것 같습니다. 이 github 문제를 살펴보십시오. https://github.com/thrillcall/net-http-persistent/commit/9f770b4660f1c9c433c1f3b50ba24dd4f1f71cf8

+0

이 업데이트가 포함 된 net-http-persistent 2.7이 이미 설치되어 있습니다. Mechanize는이 gem @ 2.5 이상이 필요합니다. 이 문제를 완화 시켜서는 안됩니까? –

+0

이전 버전을 모두 제거하십시오. – phoet