我的应用有Photos
和Locations
。
class Photo < ActiveRecord::Base
belongs_to :location
end
class Location < ActiveRecord::Base
has_many :photos
end
我要做的是使用:address
字段自动地(使用geoocoder gem)照片进行地理定位,但我想将地理位置数据存储在locations
表格中。
通过关注这个gem的github页面的教程,我能够将这些数据存储在Photos
表中而没有任何复杂性,但我甚至无法想象如何将这个自动地理定位魔法移动到相关表格。
更重要的是,它会非常棒,如果它像标记一样工作 - 如果提供的地址已经在locations
表中,脚本应该将它与新的/更新的照片相关联。但是如果db中没有这样的地址,它应该创建一个新的位置记录。
通常情况下,我会通过手动地使用before_save
回调对照片进行地理编码来100%手动完成,但我觉得这是一个非常脏的解决方案,我相信有一个我不知道的解决方案。
答案 0 :(得分: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
您可以看到地理编码器result
here