Как разобрать URL-адрес, чтобы получить базовый url? - Рельсы 3.1

Как я могу разобрать URL-адреса, например

http://www.1800contacts.com/productlist.aspx?dl=P&source=cj&ac=8.2.0007

и получить только

http://www.1800contacts.com

?

PS. Некоторые URL-адреса имеют поддомены и т.д., Поэтому я не могу использовать регулярные выражения здесь.

Ответ 1

Попробуйте использовать библиотеку "uri":

require 'uri'
address = 'http://www.1800contacts.com/productlist.aspx?dl=P&source=cj&ac=8.2.0007'
uri = URI.parse(address)
puts "#{uri.scheme}://#{uri.host}"  # => http://www.1800contacts.com

Ответ 2

2 альтернативных пути

uri = URI.parse(url); uri.path = ''; uri.query = nil; uri.to_s
url.split('/')[0,3].join('/')