2014-04-17 82 views
0

在我的rails項目中,我試圖使用下面的代碼,但是我遇到了一個問題,出現以下錯誤。 undefined local variable or method 'req'。我不知道我在這裏失去了什麼。未定義的本地變量`request`

require 'net/http' 
... 
def url_exist? 
    url = URI.parse(self.website) 
    req.use_ssl = (url.scheme == 'https') 
    req = Net::HTTP.new(url.host, url.port) 
    path = url.path if url.path.present? 
    req.request_head(path || '/') 
    res.code != "404" # false if returns 404 - not found 
rescue Errno::ENOENT 
    false # false if can't find the server 
end 

回答

2

切換url_exist?函數中第二行和第三行的順序。你需要在做任何事情之前聲明一個變量。

require 'net/http' 
... 
def url_exist? 
    url = URI.parse(self.website) 
    req = Net::HTTP.new(url.host, url.port) 
    req.use_ssl = (url.scheme == 'https') 
    # ... 
end 

另外你的函數每次最後還是返回false。 Like before

+0

這樣做後,我'eq.request_head(路徑||'/')''方案http不接受註冊表部分'的錯誤,但這可能是另一個問題。 – Scalahansolo

+1

可能。這與訂單切換無關。 [這個問題](http://stackoverflow.com/questions/7156885/checking-url-availability-ruby-on-rails)在stackoverflow可能能夠幫助你。 –

+0

@SeanCallahan因爲這解決了你有'未定義的局部變量或方法'req''這個問題,如果你能將我的答案標記爲已接受,那將是非常好的。 –