如果我有一个表单输入,其中某人放置'facebook.com'或'google.com',它会将其转换为有效的URL添加http://以便rails可以使用它。我想要的是有一个表单,您输入一个URL,它会抓取该站点上最常用的3个单词,并在结果页面的列表中显示它们。此列表应该可以在以后访问,因此我还需要使用该URL存储这些单词
def smart_add_url_protocol
url = Url.find_by(params[:url])
unless self.url[/\Ahttp:\/\//] || self.url[/\Ahttps:\/\//]
self.url = "http://#{self.url}"
end
end
像这样的东西。
答案 0 :(得分:1)
你可以这样使用URI::HTTP#build
:
URI::HTTP.build(host: 'facebook.com').to_s
#=> "http://facebook.com"
答案 1 :(得分:1)
我建议Addressable gem从猜测字符串中的网址有点聪明:
require "addressable/uri"
Addressable::URI.heuristic_parse(some_string_with_an_url).to_s