更新rails应用中所有记录的纬度和经度

时间:2014-03-06 20:57:03

标签: ruby-on-rails activerecord geocoding

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

为了打击没有进入奥斯汀和德克萨斯州的人们,我在我的活动模型中添加了一个方法并将其更改为geocoded_by:完整地址

def full_address
  addr = self.address
  addr += ' Austin ' unless addr.include?('Austin')
  addr += ' Texas ' unless addr.include?('Texas')
  addr
end

这适用于提交的新活动。但是,我有许多需要通过此测试的事件,并且相应地在数据库中更新了它们的纬度和经度。

寻找有关如何完成此操作的信息。

1 个答案:

答案 0 :(得分:1)

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

rake geocode:all CLASS=YourModel

请参阅:http://rubydoc.info/gems/rails-geocoder/0.9.10/file/README.rdoc

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

或者如果没有那么多条目,你可以简单地重置所有存储的纬度/经度位置并再次运行rake geocode:all命令。