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

Any ideas how to setup geocoder with rails 5?

我正在尝试从地址获取纬度和经度,但是当我 运行 rails db:seed 纬度和经度保持空白时,其余字段将被播种

这是我的模型

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

我在 GemFile

中有 gem 'geocoder'
    My Rails version 5.0.6
    and ruby version 2.4.1

注意:我只需要使用 'geocoder' gem 我只有这些了,先谢谢了

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? }