2010-12-17 108 views
4

我會如何解決這個問題? 我試圖爲什麼這個命令不能在這個特定的代碼中工作?

Net::HTTP.new(@site).head('/').kind_of? Net::HTTPOK 

但我收到此:

error: in `kind_of?': class or module required (TypeError)

我覺得有什麼錯我的代碼,可以請你看一看呢?我知道它非常混亂,很糟糕,我是一年級的編程學生,我正在學習。如果您有任何改進意見,請告訴我!

此外,有一些東西搞砸了其中包含的內容。出於某種原因,當我試圖結束所有的defs時,我得到了一個意外的結束錯誤。

這是我在上下文代碼:

def begindownload 
    require 'net/http' 
    puts "Enter the URL of the site that you want to rip images from (use www.*website*.com/folder/file.html or other extension format):" 
    while @site = gets.chomp 
     puts "Querying " + @site 
     if Net::HTTP.new(@site).head('/').kind_of? Net::HTTPOK == true 
      puts "Site is online!" 
     else 
      puts "Site is offline. Try again." 
     end 
    end 
end 
+0

請張貼更多相關代碼,特別是'require'語句。另外,請通過格式化問題來幫助我們,以便代碼可讀。 – BryanH 2010-12-17 21:03:00

+0

Stackoverflow將鏈接撕掉了! http://pastebin.com/WzSawCwz – user451711 2010-12-17 21:04:41

+0

您可以通過選擇並按下Ctrl-K(或將其縮進四個空格)來格式化代碼。 – 2010-12-17 21:05:59

回答

6

在你的代碼使用的是行:

if Net::HTTP.new(@site).head('/').kind_of? Net::HTTPOK == true 

==正在評估第一引發Net::HTTPOK == true進行評估,以false。接下來的陳述變爲:

if Net::HTTP.new(@site).head('/').kind_of? false 

導致您的TypeError

當您執行if語句時,不需要檢查== true。如果if之後的語句評估爲true,則將評估if。無論如何檢查布爾== true是否被認爲是不好的形式。

+0

刪除了==真,它完美的作品。謝啦! – user451711 2010-12-17 21:20:58

0

你有沒有試過.instance_of代替?

相關問題