【问题标题】:Geocoder gem 'rake geocode:all CLASS=Model' not working地理编码器 gem 'rake geocode:all CLASS=Model' 不起作用
【发布时间】:2016-11-25 07:19:29
【问题描述】:

我有一个安装了地理编码器 gem 的 Ruby on Rails 应用程序。我正在尝试使用 rake geocode:all 对我的数据库中的所有行(大约 2500 行)进行批量地理编码。当我运行命令时,什么也没发生。没有任何行被地理编码。我在这里遗漏了什么吗?

模型.rb

geocoded_by :fulladdress  
after_validation :geocode

def fulladdress                                         
  [address, city, state, zip].compact.join(",")  
end

【问题讨论】:

  • 你使用的是活动记录还是mongoid?
  • db里有纬度、经度字段吗?
  • 仅当您使用活动记录时
  • 是的,我正在使用活动记录。是的,我的表中存在纬度和经度列。
  • 您能否也显示您在其他文件中的内容?

标签: ruby-on-rails ruby geocoding google-geocoding-api rails-geocoder


【解决方案1】:

尝试手动在 Rake 任务之外运行(例如 rails 控制台或 rails runner):

Model.find_each {|m| m.save! }

如果您在开发中执行此操作,请快速查看输出的 SQL 语句,是否有“UPDATE models SET lat=?, lon=? ...”行

【讨论】:

  • 'rake geocode:all CLASS=Model' 命令没有输出任何东西..我可以用 'Model.find_each {|m| 检查什么m.保存! }' ..我没有完全理解你。
  • 这将为您的所有模型运​​行验证+保存。您的代码看起来不错,保存也将运行您的地理编码。任何错误都应该由“保存!”引发。如果您使用 Google 作为您的地理编码后端,请确保包含 sleep 1,否则您将被限制。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多