有关如何使用rails 5设置地理编码器的任何想法吗?

时间:2017-12-06 07:05:17

标签: ruby-on-rails google-maps rails-geocoder geocoder

我试图从地址获取纬度和经度但是当我运行rails db:种子纬度和经度保持空白而其余的字段将被播种

这是我的模特

    attr_accessor :lat, :lng
    geocoded_by :address, :latitude  => :lat, :longitude => :lng
    after_save :geocode, if: ->(building){ building.address.present? }

我有宝石地理编码器'在GemFile中

    My Rails version 5.0.6
    and ruby version 2.4.1

注意:我只需要使用'地理编码器'宝石 这就是我所拥有的,提前谢谢

1 个答案:

答案 0 :(得分:2)

after_save表示在将记录保存到数据库后完成地理编码,因此地理编码信息本身不会保存到数据库中。

此外,attr_accessor :lat, :lng会覆盖Rails为latlng数据库列提供的getter和setter方法。

只需将您的代码更改为:

# remove this line: attr_accessor :lat, :lng
geocoded_by :address, :latitude  => :lat, :longitude => :lng
before_save :geocode, if: ->(building){ building.address.present? }