2

我有一个应用程序PhotosLocations如何将地理编码数据存储在单独的表中?

class Photo < ActiveRecord::Base 
    belongs_to :location 
end 

class Location < ActiveRecord::Base 
    has_many :photos 
end 

我想要做的是汽车使用地理定位的照片的:address场,但我想地理位置数据存储在locations表(带geoocoder gem)。

通过遵循这个宝石的github页面的教程,我能够将这些数据存储在Photos表中,没有任何复杂性,但我甚至无法想象如何将此自动地理定位魔法移动到关联的表格。

更重要的是,如果它像标签一样工作 - 如果提供的地址已经在locations表中,那么脚本应该将其与新的/更新的照片相关联。但是如果数据库中没有这样的地址,它应该创建一个新的位置记录。

通常情况下,我会通过手动对before_save回调进行地理编码来手动100%地完成回调,但我觉得这是一个非常肮脏的解决方案,我相信有一个我不知道的解决方案。

回答

0

您看过文档中的Advanced GeoCoding部分了吗?

我正在使用MongoDB,以下是我一直在做的事情。

#set up my relationship 
embeds_one :address_info 

#assign the address_data hash to my embedded document 
reverse_geocoded_by :coordinates do |obj,result| 
    if obj = result.first 
    obj.address_info = result.address_data 
    end 
end 

你可以看到什么地址解析器的resulthere

进来
相关问题