-1

我正在尝试从地址获取纬度和经度,但是当我运行 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 这就是我所拥有的,在此先感谢

4

1 回答 1

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? }
于 2017-12-06T07:33:50.010 回答