如何使用Ruby中的URI类从域中提取根域?

时间:2016-10-22 07:53:51

标签: ruby

说我有这样的网址:http://www.rubinassociatespa.com/AccountantBocaRaton.html

我想提取基本域 - http://www.rubinassociatespa.com

虽然没有进行字符串操作,但我无法弄清楚如何使用ruby URI类来完成它。

[36] pry(#<YPCrawler::PageParser>)> @url
=> "http://www.rubinassociatespa.com/AccountantBocaRaton.html"
[37] pry(#<YPCrawler::PageParser>)> URI(@url).scheme
=> "http"
[38] pry(#<YPCrawler::PageParser>)> URI(@url).host
=> "www.rubinassociatespa.com"

要使用字符串操作来执行此操作,我必须执行以下操作:

URI(@url).scheme + "://" + URI(@url).host

但这看起来很糟糕。

是否有更“原生”的方式来做到这一点?一些很酷的方法或URI类中可以优雅处理它的东西?

1 个答案:

答案 0 :(得分:1)

我总是使用:

$firmsQuery = (new Firm)->newQuery();

if($request->has('types')) {
    $typesArray =  $request->input('types');

    foreach ($typesArray as $type) {
        $firmsQuery->where(function($query) use ($type) {
            $query->orWhere('type', $type);
        });
    }

}

$firms = $firmsQuery->get();

这是安全的,因为它正是基本域的原因:没有路径的整个URI。

请注意,由于URI类extensibility和RFC本身的灵活性,将不会有任何统一的方法。