【问题标题】:Error instantiating mechanize object实例化机械化对象时出错
【发布时间】:2014-02-06 20:33:15
【问题描述】:

我不知道这是什么问题。我正在 Rails 控制台中尝试这个:

>> agent = Mechanize.new
NoMethodError: undefined method `user' for nil:NilClass

我添加了 gem 'mechanize' 并进行了捆绑安装。我确实需要“机械化”。我还尝试了下面的 require 'nokogiri' ,每次我得到同样的错误。我尝试了 4 或 5 种不同的方法来实例化一个新的机械化对象,但始终找不到。

我在整个 Rails 应用程序中搜索字符串“.user”,但没有找到。不知道这里有什么交易。有什么想法吗?

谢谢

编辑

全栈跟踪

NoMethodError: undefined method `user' for nil:NilClass
from /home/me/.rvm/gems/ruby-1.9.3-p448@my_app/gems/net-http-persistent-2.9.2/lib/net/http/persistent.rb:866:in `proxy='
from /home/me/.rvm/gems/ruby-1.9.3-p448@my_app/gems/mechanize-2.7.2/lib/mechanize/http/agent.rb:1189:in `set_proxy'
from /home/me/.rvm/gems/ruby-1.9.3-p448@my_app/gems/mechanize-2.7.2/lib/mechanize.rb:204:in `initialize'
from (irb):5:in `new'
from (irb):5
from /home/me/.rvm/gems/ruby-1.9.3-p448@global/gems/railties-3.2.15/lib/rails/commands/console.rb:47:in `start'
from /home/me/.rvm/gems/ruby-1.9.3-p448@global/gems/railties-3.2.15/lib/rails/commands/console.rb:8:in `start'
from /home/me/.rvm/gems/ruby-1.9.3-p448@global/gems/railties-3.2.15/lib/rails/commands.rb:41:in `<top (required)>'
from /home/me/Dropbox/Work/RubymineProjects/apps/my_app/script/rails:6:in `require'
from /home/me/Dropbox/Work/RubymineProjects/apps/my_app/script/rails:6:in `<top (required)>'
from -e:1:in `load'
from -e:1:in `<main>'

【问题讨论】:

  • 你能添加整个堆栈跟踪吗?
  • 它看起来与您的 http 代理有关。
  • 据我所知,我没有使用代理。我在我的家庭网络上,没有代理。我使用的是虚拟机,这会有所不同吗?我该如何解决这个问题,因为我不明白即使我在代理后面,对象实例化也会引发错误。

标签: ruby-on-rails ruby mechanize


【解决方案1】:

你没有做错任何事:几天前发布的 mechanize 版本有问题。我解决了这个错误,只是更新了 gem(即使用bundle update mechanize)。

【讨论】:

  • 没错!这是我第一次尝试使用它,所以我什至不认为它可能是一个错误。再次感谢!
猜你喜欢
  • 2011-03-21
  • 2010-11-05
  • 1970-01-01
  • 1970-01-01
  • 2016-08-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多