Ruby on rails 更新rails应用程序中所有记录的纬度和经度

Ruby on rails 更新rails应用程序中所有记录的纬度和经度,ruby-on-rails,activerecord,geocoding,Ruby On Rails,Activerecord,Geocoding,我有一个事件模型,当在表单中输入地址并将其提交时,它将地址地理编码为纬度和经度,并将这些值保存在事件记录中 为了打击那些没有进入奥斯汀和德克萨斯州的人们,我在我的事件模型中添加了一个方法,并将其更改为地理编码为:full address def full_address addr = self.address addr += ' Austin ' unless addr.include?('Austin') addr += ' Texas ' unless addr.include?

我有一个事件模型,当在表单中输入地址并将其提交时,它将地址地理编码为纬度和经度,并将这些值保存在事件记录中

为了打击那些没有进入奥斯汀和德克萨斯州的人们,我在我的事件模型中添加了一个方法,并将其更改为地理编码为:full address

def full_address
  addr = self.address
  addr += ' Austin ' unless addr.include?('Austin')
  addr += ' Texas ' unless addr.include?('Texas')
  addr
end
这对于正在提交的新事件非常有效。然而,我有许多事件需要通过这个测试,它们的纬度和经度在数据库中相应地更新


正在查找有关如何执行此操作的信息。

如果您有地址错误的现有记录,并且该条目没有地理编码,您可以运行:

rake geocode:all CLASS=YourModel
见:

如果没有“Austin Texas”的条目已经地理编码(但不正确),您可以搜索不包含austing/Texas的所有地址,并将其重新地理编码


或者,如果没有那么多条目,您可以简单地重置所有存储的lat/long位置,然后再次运行rake geocode:all命令。

那么我就可以执行:Event.update_all({:经度=>nil},{:纬度=>nil})然后rake geocode:all CLASS=Event?我想我应该在评论之前进行测试:)对我来说非常有效。谢谢@gernberg!326非常无痛。