2013-06-06 10 views
5

Conosco il formato di convalida per IPv4 e IPv6. Ma non sono sicuro di come posso combinarli in modo che almeno un formato dovrebbe essere vero. Qui è la mia convalidaRails 3 convalidare il formato IPv4 e IPv6

validates :src_ip_addr, :presence => true, :uniqueness => true, 
      :format => { :with => Resolv::IPv4::Regex, :message => "Not an valid IPv4 format"} 

    validates :src_ip_addr, :presence => true, :uniqueness => true, 
      :format => { :with => Resolv::IPv6::Regex, :message => "Not an valid IPv6 format"} 

Come posso combinare in modo se un formato è corretto quindi convalida dovrebbe funzionare. Dovrebbe fallire solo se il formato ipv4 e ipv6 non è corretto.

Grazie.

risposta

12

È possibile anche combinarle con Regexp.union:

:format => { :with => Regexp.union(Resolv::IPv4::Regex, Resolv::IPv6::Regex) ... 
+0

grandi opere. Grazie – user588324

+1

Questo è il motivo per cui amo le rotaie/rubino/grazie/etc – stephenmurdoch

+0

grazie mille !! :) – Tilo

Problemi correlati