如何在rails中将字符串转换为URL

时间:2015-01-05 23:24:42

标签: ruby-on-rails ruby validation url ruby-on-rails-4

如果我有一个表单输入,其中某人放置'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
像这样的东西。

2 个答案:

答案 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