0
我正在尋找一種方法來驗證字段中是否存在導軌模型中的正確URL或IP地址。我玩過validates :url, :format => URI::regexp(%w(http https))
,以及其他URL驗證。但是,如何通過URL或IP地址驗證字段?也許這是一個寶石。Rails 3驗證URL或IP地址
thx!
我正在尋找一種方法來驗證字段中是否存在導軌模型中的正確URL或IP地址。我玩過validates :url, :format => URI::regexp(%w(http https))
,以及其他URL驗證。但是,如何通過URL或IP地址驗證字段?也許這是一個寶石。Rails 3驗證URL或IP地址
thx!
不知道是否有這樣的寶石,但自定義驗證可以實現相對簡單(與Gemfile中的ipaddress
寶石)。嘗試類似
require 'uri'
validate :valid_url_or_ip
...
private
def valid_url_or_ip
unless valid_url?(url) || IPAddress.valid?(url)
errors.add(:url, "Not an URL or IP address")
end
end
def valid_url?
uri = URI.parse(url)
uri.kind_of?(URI::HTTP) || uri.kind_of?(URI::HTTPS)
rescue URI::InvalidURIError
false
end
謝謝,那確實很簡單;) – 23tux 2013-02-17 15:37:11
所以有效的字段可以是'http:// host.tld'以及'127.0.0.1'?確切地說, – dimuch 2013-02-17 14:42:44
,這兩種方法都應該是可能的。 – 23tux 2013-02-17 14:51:20