Można również potwierdzić, że to jest rzeczywiście ważne zip (nie tylko format, ale sam zip) przy użyciu:
http://www.webservicex.net/uszip.asmx?op=GetInfoByZIP
spróbować ważnego zip znasz, np 02135 kontra nieważny jak 09990, aby zobaczyć różnicę.
uważam łącząc to z:
validates_format_of :zip, :with => /^\d{5}(-\d{4})?$/, :message => "should be in the form 12345 or 12345-1234"
że jest to zrobione z validate_format_of
, zamiast validate_format_of_zip_code
a to znaczy, że mogą być również wykorzystywane do numerów telefonów, etc, które pasują także stałą, znaną, format (.eg USA).
Możliwe, że najpierw sprawdzi poprawność formatu i poda błąd, jeśli jest nieprawidłowy, więc obsłuż go w szyny standardową wiadomością błyskawiczną.
Następnie, jeśli jest prawidłowe, wykonaj połączenie z tym serwerem, aby sprawdzić autentyczność samego pliku ZIP.
Jedynym minusem takich sprawdzonych poprawności serwera jest to, że zwiększają one zależność od innych witryn i usług. Więc jeśli druga witryna/usługa zmienia rzeczy lub jest niedostępna, itp. Istnieje problem. Jest to kolejny powód, dla którego prostsze sprawdzanie poprawności jest doskonałym pomysłem.
Pełne rozwiązanie serwisowe również sprawdzałoby czas oczekiwania przez usługę kodu pocztowego, a jeśli tak się stanie, powiedzmy 5 sekund, a format jest w porządku, najlepiej przyjąć wartość. Może ustawić flagę "unverified_zip", jeśli to możliwe!
Proszę określić „to nie działa”. – jdl