2014-04-17 67 views
0

在我的代碼中,我試圖呼叫url_exist?作爲網站的驗證,但我不確定如何使用網站的值調用url_exist?。這似乎是一個愚蠢的問題,但我無法弄清楚。使用參數進行Rails驗證

型號

validates :website, presence: true, if: :url_exist? 
... 
def url_exist?(url_string) 
    url = URI.parse(url_string) 
    puts url 
    binding.pry 
    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 

回答

1

你已經知道的website的價值,因爲它是對象的屬性之一。所以,只需在您的url_exist?函數中引用它。

validates :website, presence: true, if: :url_exist? 

# ... 

def url_exist? 
    url = URI.parse(self.website) 
    puts url 
    # ... 
end 

我也應該注意到,它看起來像你缺少對您發佈的片段結束一些代碼,所以現在你url_exist?功能將始終返回false。