這是一個普遍的問題:如果我想驗證街道地址的唯一性,並且想確保像「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. 問題驗證街道地址與一些字母
- 3. 使用Javascript進行街道地址驗證
- 4. php - 使用正則表達式驗證街道地址
- 5. 查找街道地址
- 6. ISO標準街道地址?
- 7. 電子郵件地址驗證的唯一性(xpages)
- 8. MAC地址的唯一性
- 9. 唯一性驗證性能
- 10. 地理編碼多行街道地址(地址1 /地址2)
- 11. 「一個或多個實體的驗證失敗」更改默認帳單地址'街道地址時出錯
- 12. 開放街道地圖地址解碼
- 13. 的preg_match PHP的街道地址
- 14. 從街道地址剝離街道號碼
- 15. 只顯示google.maps.event.addListener()中的街道地址
- 16. 驗證存在的街道地址反對OpenStreetMap數據庫在python
- 17. 驗證的存在性和唯一性,軌道4
- 18. Schematron驗證和唯一性
- 19. 驗證唯一性失敗
- 20. 從地址中刪除街道後綴
- 21. Geocoder API僅返回街道地址
- 22. 在地址中獲取街道類型
- 23. MySQL街道地址模糊搜索
- 24. 查詢yellowpages.com返回街道地址
- 25. 在MS SQL中訂購街道地址
- 26. 在iOS中使用街道地址
- 27. 檢索Active Directory DirectoryEntry的街道地址屬性
- 28. 唯一的電子郵件地址驗證
- 29. MVC遠程驗證(唯一的電子郵件地址)
- 30. 地址驗證
在模型中?你在哪裏期待更具體的答案? – jason328 2013-05-13 01:10:18