2010-12-17 9 views
4

どうすればいいですか? は私がこの特定のコードでこのコマンドを使用できないのはなぜですか?

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

を試してみましたが、私は、この受信:

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

を私は自分のコードに何か問題があると思い、あなたはそれを見てくださいできますか?私は非常に面倒で、かなり悪いことを知っています、私は最初の年のプログラミングの学生で、私は学んでいます。改善のためのアイデアがあれば教えてください!

また、内部に含まれる末尾には何かがあります。何らかの理由で、すべてのdefを終了しようとすると予期しない終了エラーが発生します。ここで

は、文脈で私のコードです:

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

+0

Stackoverflowはすぐにリンクをリッピング! http://pastebin.com/WzSawCwz – user451711

+0

コードを選択してCtrl + K(または4つのスペースでインデントする)を押すと、コードを書式設定できます。 –

答えて

6

あなたがラインを使用しています。残りの声明は次のようになります。

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

原因となるのはTypeErrorです。

ifステートメントを実行しているときに== trueを確認する必要はありません。 ifの後のステートメントがtrueと評価された場合、ifが評価されます。とにかくブール値== trueが悪いと見なされているかどうかを確認します。

+0

== trueを削除しても完全に動作します。ありがとう! – user451711

0

は、あなたの代わりに.instance_ofしようとしたことがありますか?

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

==が最初falseに評価されるNet::HTTPOK == trueを引き起こして評価されている:あなたのコードで

関連する問題