如何在Rails/Ruby中操作URL?

Rai*_*ner 1 ruby ruby-on-rails

我想操纵一个URL来获取基本站点名称.

例如,我有URL:

http://stackoverflow.com/questions/ask,
Run Code Online (Sandbox Code Playgroud)

哪个应该回来stackoverflow.

如果我有URL:

http://stackoverflow.com/questions/4988199/rails-3-mechanize-socketerror-getaddrinfo-host-or-name-not-known
Run Code Online (Sandbox Code Playgroud)

它也应该只是stackoverflow.

最后一个例子,如果我有URL:

http://www.google.dk/search?q=ruby+string+manipulation
Run Code Online (Sandbox Code Playgroud)

它应该是google.

除了URL的域名之外,我该如何删除所有内容?

Geo*_*Geo 8

您可以使用std Ruby发行版中已有的东西:

irb(main):001:0> require "uri"
=> true
irb(main):002:0> a = URI.parse("http://www.google.com")
=> #<URI::HTTP:0x3b3eb78 URL:http://www.google.com>
irb(main):003:0> a.host
=> "www.google.com"
irb(main):004:0>
Run Code Online (Sandbox Code Playgroud)