我正在寻找一种方法来验证 Rails 模型中正确 URL 或 IP 地址的字段。我玩过validates :url, :format => URI::regexp(%w(http https))
, 和其他 URL 验证。但是如何使用 URL 或 IP 地址验证该字段?也许有一个宝石。
谢谢!
我正在寻找一种方法来验证 Rails 模型中正确 URL 或 IP 地址的字段。我玩过validates :url, :format => URI::regexp(%w(http https))
, 和其他 URL 验证。但是如何使用 URL 或 IP 地址验证该字段?也许有一个宝石。
谢谢!
不确定是否有这样的 gem,但是可以相对简单地实现自定义验证(ipaddress
在 Gemfile 中使用 gem)。尝试类似的东西
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