2013-06-06 43 views
5

Tôi biết định dạng xác thực cho IPv4 và IPv6. Nhưng không chắc chắn làm thế nào tôi có thể kết hợp chúng để ít nhất một định dạng nên là đúng sự thật. Dưới đây là xác nhận của tôiRails 3 xác nhận định dạng IPv4 và 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"} 

Làm cách nào để kết hợp chúng nên nếu một định dạng đúng thì xác thực sẽ hoạt động. Chỉ nên thất bại nếu định dạng ipv4 và ipv6 không chính xác.

Cảm ơn.

Trả lời

12

Bạn cũng có thể kết hợp chúng với Regexp.union:

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

hoạt động tuyệt vời. Cảm ơn – user588324

+1

Đây là lý do tại sao tôi thích đường ray/ruby ​​/ thanks/etc – stephenmurdoch

+0

cảm ơn rất nhiều !! :) – Tilo

Các vấn đề liên quan