1

Rails モデルで正しい URL または IP アドレスのフィールドを検証する方法を探しています。validates :url, :format => URI::regexp(%w(http https))、およびその他の URL 検証で少し遊んでみました。しかし、URL または IP アドレスでフィールドを検証するにはどうすればよいでしょうか? 多分それのための宝石があります。

どうも!

4

1 に答える 1

2

そのような宝石があるかどうかはわかりませんが、カスタム検証は比較的簡単に実装できます ( ipaddressGemfile の宝石を使用)。次のようなものを試してください

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
于 2013-02-17T15:11:20.513 に答える