2010-03-03 72 views
0

我正在使用機械化,並在使用腳本/控制檯在rails環境中測試時遇到繼承問題。Ruby機械化和繼承的問題

當我寫這樣的:

require 'rubygems' 
require 'mechanize' 

agent = WWW::Mechanize.new 
agent.get 'http://www.google.com' 

,一切工作正常。但是,當我嘗試創建WWW的子類::機械化這樣的:

require 'rubygems' 
require 'mechanize' 

class Alfa < WWW::Mechanize; end 

agent = Alfa.new 
agent.get 'http://www.google.com' 

我得到以下錯誤:

NoMethodError:你有一個零對象時,你沒想到吧!而從/Library/Ruby/Gems/1.8/gems/mechanize-0.9.3/lib/www/mechanize/page.rb:77:in'解析器」

上午我評估nil.parse 發生 錯誤遺漏了什麼?提前

+0

你真的試圖挖掘到機械化源在上述頁面,看看那裏有什麼? – 2010-03-03 16:35:53

+0

是的,我一直在尋找了一段時間的代碼,但我猜我必須做一些額外的有關子分類。 – thiagobrandam 2010-03-03 16:45:04

+0

您是否試圖將您的「Alfa」類放入與Mechanize相同的名稱空間? – Aurril 2010-03-03 17:46:14

回答

2

當你繼承WWW ::機械化

謝謝,不用了HTML解析器提供:那是什麼錯誤行實際上告訴了你。

這工作:

class Agent < WWW::Mechanize 
end 
a = Agent.new 
a.html_parser = Nokogiri::HTML 
a.get 'http://www.google.com' 
+0

感謝我,BLIS,我還以爲是由底層Page類自動完成這些設置步驟。 – thiagobrandam 2010-03-03 20:45:35