【问题标题】:Any ideas how to setup geocoder with rails 5?任何想法如何使用 rails 5 设置地理编码器?
【发布时间】:2017-12-06 07:05:16
【问题描述】:

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

【问题讨论】:

  • 这个模型的数据库模式是什么样的?该表中有latlng 列吗?
  • 是的,我有 lat 和 lng。他们的类型是浮动

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


【解决方案1】:

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-03-23
  • 1970-01-01
  • 2023-03-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多