Предположим, что после простой проверки отправленного пользователем URL-адреса у меня есть строка, похожая на URL-адрес:
url = 'http://www.thisdomaindoesntexist.com/dont_even_ask_about/this/uri'
Как я могу проверить, доступен ли он или нет?
Я пробовал это вмоя функция is_valid_link:
require "net/http"
url = URI.parse(url)
req = Net::HTTP.new(url.host, url.port)
res = req.request_head(url.path)
Это работает, если сервер существует, возвращая мне HTTP-ответ, но проблема в том, что в случае неправильного URL я получаю ошибку, подобную этой:
SocketError in PostsController#create
getaddrinfo: nodename nor servname provided, or not known
Как мне правильно выполнить такую проверку?
Заранее спасибо.