gpt4 book ai didi

ruby-on-rails - 使用 Rails 验证美国邮政编码格式

转载 作者:行者123 更新时间:2023-12-04 01:23:24 25 4
gpt4 key购买 nike

如何使用 Rails 验证美国邮政编码?

我写了这样的东西,但它不起作用:

validates_format_of :zip_code,
:with => /^\d{5}(-\d{4})?$/,
:message => "Zip code should be valid"

最佳答案

您还可以使用以下方法验证它实际上是一个有效的 zip(不仅仅是格式,还有 zip 本身):
http://www.webservicex.net/uszip.asmx?op=GetInfoByZIP

尝试使用您知道的有效 zip,例如02135 与无效的 09990 之类的以查看差异。

我会考虑将其与:

validates_format_of :zip, :with => /^\d{5}(-\d{4})?$/, :message => "should be in the form 12345 or 12345-1234"

已完成 validate_format_of , 而不是 validate_format_of_zip_code因为这意味着它也可以用于电话号码等也适合固定的、已知的格式(例如美国)。
也许首先验证格式并在无效时给出错误,因此使用标准 flash 消息在 rails 中处理所有这些。
然后,如果有效,则调用该服务器以验证实际的 zip 本身。

像这样的优秀服务器提供的验证的唯一缺点是它们增加了对其他站点和服务的依赖。因此,如果其他站点/服务发生变化或不可用等,则存在问题。这是为什么首先进行更简单的有效性检查是个好主意的另一个原因。

一个完整的服务解决方案还会检查邮政编码服务是否超时,如果发生这种情况,比如 5 秒,并且格式可能最好接受值。如果可能的话,可以设置一个“unverified_zip”标志!

关于ruby-on-rails - 使用 Rails 验证美国邮政编码格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8212378/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com