如何验证网站网址的格式

时间:2013-10-11 08:13:22

标签: ruby-on-rails ruby validation uri

我知道这已被问过几次,但我仍然无法让它工作。

在我的模特中我有

class User < ActiveRecord::Base
  require 'uri'
  attr_accessible :website
  validates :website, presence: true
end

我想做的就是检查它是否是有效的格式化网址。

当我在控制台中输入以下代码行时,它们都返回true

!!URI.parse('www.fake.com')

!!URI.parse('fake')

我如何将Simone的答案(A good way to validate urls)纳入我的模型以验证网址的格式?

def valid?(uri)
  !!URI.parse(uri)
rescue URI::InvalidURIError
  false
end

1 个答案:

答案 0 :(得分:0)

class User < ActiveRecord::Base
  require 'uri'
  attr_accessible :website
  validates :website, presence: true
  validate :website_url_format_valid?

  private

  def website_url_format_valid?
     uri = URI.parse(url)
     uri.kind_of?(URI::HTTP)
   rescue URI::InvalidURIError
      false
    end
end