首页 > 解决方案 > 使用自定义地址格式的 Rails geocoder gem 地理编码

问题描述

我正在使用地理编码器从地址获取纬度和经度

在我添加的模型中

class Clinic < ApplicationRecord
    geocoded_by :full_street_address
    after_validation :geocode

    def full_street_address
      [address_line1, city, state, country].compact.join(', ')
    end
end

客户给我提供了这样的地址

{
    "name": "Bahrain Defence Force Royal Medical Services Hospital - Riffa",
    "address_line1": "West Riffa P O Box 28743",
    "country": "Bahrain",
    "state": "Al-Wusta",
    "city": "Riffa"
}

现在,当我创建一个诊所时,它不会返回经纬度,

似乎问题出在地址而不是下一行

[address_line1, city, state, country].compact.join(', ')

有没有办法可以专门提供邮政编码等或如何处理上述地址?

标签: ruby-on-railsgeocoder

解决方案


假设您遵循 Geocoder 文档并将longitudeandlatitude属性添加到您的模型中,我尝试了您的代码,您只需在所需的任何回调中添加after_validation :geocode或使用该方法:geocode

编辑:

好的,所以我认为您的问题更新时我没有刷新页面,但是我尝试了完全相同的代码并且它按预期工作。


推荐阅读