1

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

在我的模型中,我有

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

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

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

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

!!URI.parse('fake')

我如何将 Simone 的答案(验证网址的好方法)合并到我的模型中以验证网址的格式?

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

1 回答 1

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
于 2013-10-11T08:20:13.600 回答