这是一个普遍的问题:如果我想验证街道地址的唯一性,并且想确保像“drive”和“dr”这样的语义相同性在验证中被计为相同的事物,我如何/在哪里宣布这种平等的验证?验证街道地址的唯一性
回答
您需要以某种方式规范这些地址。我推荐geocoder gem与谷歌。
谷歌地理编码器不错,但它在许多农村地区(从经验来说)严重失败。 – dbenhur 2013-05-13 02:32:57
不像菲律宾邮局那样糟糕(也来自经验):) – pguardiario 2013-05-13 03:47:18
好的,所以我想的是类似于用户输入地址,使用地理编码器计算纬度和经度,使用纬度和经度返回谷歌的地址(因此按照Google的惯例进行规范化),然后执行保存? – Zephyr4434 2013-05-13 14:51:25
您可以在模型中使用validates :address, :uniqueness => true
。
为了确保语义平等,最好的办法是在保存并将所有“dr”转换为“drive”之前进行一些清理,将所有2个空格转换为1个空间,然后将其转换为类似的东西。
但我怀疑你会成功与此!你为什么不使用邮政编码,邮政编码或任何被称为?这应该是一个地址的uniq标识符,那么你为什么不使用它?
在美国,ZIP + 4代码不能唯一标识一个地址。如果您倾斜头部并斜视,您可能会声称它们唯一标识邮件投递“区域”。但“区域”可能从一栋房子到数英亩的公寓或购物中心。 – 2013-05-13 01:34:54
这是一个不平凡的问题。你不打算用关于规范化地址的adhoc规则列表来解决它。如果你想做得很好,你应该找到一个USPS认证的Coding Accuracy Support System (CASS) library并用它来规范你的地址。
OP从来没有真正提到这些是美国地址 – pguardiario 2013-05-13 02:28:25
@pguardiario够正确。我确信地址规范化在非美国地区也很艰难,我会推荐其他国家的邮政服务作为如何做好这项工作的权威机构。 – dbenhur 2013-05-13 02:31:56
- 1. UPS地址街道等级验证
- 2. ISO标准街道地址?
- 3. 电子邮件地址验证的唯一性(xpages)
- 4. MAC地址的唯一性
- 5. 唯一性验证性能
- 6. 地理编码多行街道地址(地址1 /地址2)
- 7. “一个或多个实体的验证失败”更改默认帐单地址'街道地址时出错
- 8. 的preg_match PHP的街道地址
- 9. 从街道地址剥离街道号码
- 10. 验证的存在性和唯一性,轨道4
- 11. Schematron验证和唯一性
- 12. 在MS SQL中订购街道地址
- 13. 查询yellowpages.com返回街道地址
- 14. 从地址中删除街道后缀
- 15. MySQL街道地址模糊搜索
- 16. 地址验证
- 17. 地址验证
- 18. 用swift点击显示标记地址(街道地址)
- 19. 谷歌地址API URL街道地址示例
- 20. aspnetboilerplate电子邮件地址删除唯一验证
- 21. Rails 3验证条件的唯一性
- 22. Rails验证重复的唯一性
- 23. 验证多个列的唯一性
- 24. ASP.NET MVC - 验证模型的唯一性
- 25. 使用的唯一性验证条件
- 26. 验证用户名的唯一性
- 27. Rspec的验证唯一性范围
- 28. 包含街道地址匹配的regexp achor href网址
- 29. EF:属性“街道”不是类型为“地址”的声明属性
- 30. IP地址验证
在模型中?你在哪里期待更具体的答案? – jason328 2013-05-13 01:10:18