使用自定义地址格式的Rails地理编码器gem地理编码

时间:2019-03-03 11:22:29

标签: ruby-on-rails geocoder

我正在使用地址解析器从地址获取纬度和经度

在我添加的模型中

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,城市,州,国家/地区] .compact.join(',')

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

1 个答案:

答案 0 :(得分:0)

假设您遵循了Geocoder文档并向模型中添加了longitudelatitude属性,我尝试了您的代码,您只需要添加after_validation :geocode或使用方法{{ 1}}中的任何回调。

编辑:

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