基于地理区域或地址创建 Rails 验证的最佳方法是啥?

Posted

技术标签:

【中文标题】基于地理区域或地址创建 Rails 验证的最佳方法是啥?【英文标题】:What's the best way to create a Rails validation based on an geographic zone or an address?基于地理区域或地址创建 Rails 验证的最佳方法是什么? 【发布时间】:2012-05-24 15:24:48 【问题描述】:

我不知道对此采取什么策略,但我想在 Rails 中创建一个用户注册表单,它只允许您在某个地理区域内进行注册。例如,Cassat 以东的 32205 或 8th 以南的 32206。

有没有人知道处理这种事情的好方法?

包含所有已知有效地址的 yaml 文件?您可以使用 google maps api 做些什么吗?

【问题讨论】:

【参考方案1】:

Geocoder gem 可以帮助您解决这个问题...如果您对用户输入的地址进行地理编码,那么您可以进行另一个验证,如下所示:

validates :is_in_valid_area?

def is_in_valid_area?
  return unless geocoded?
  distance_from([40.714,-100.234]) < 30
end

您可能需要定义地理编码?方法自己检查坐标是否存在。

http://www.rubygeocoder.com https://github.com/alexreisner/geocoder

【讨论】:

以上是关于基于地理区域或地址创建 Rails 验证的最佳方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章

在 Rails 中验证多封电子邮件和处理错误的最佳方法是啥?

如何创建一个嵌入多边形以进行地理围栏的圆形地理围栏区域?

无需身份验证的安全 Rails 3 MultiStep 订单的最佳方法

在 Rails 中,更新记录或创建新记录(如果不存在)的最佳方法是啥?

寻找地理定位的“热点”区域?

跨多个AWS地理区域的Mongodb副本