2

我有一个带有Photosand的应用程序Locations

class Photo < ActiveRecord::Base
  belongs_to :location
end

class Location < ActiveRecord::Base
  has_many :photos
end

我想要做的是使用字段自动地理定位(使用geoocoder gem)照片,:address但我想将地理定位数据存储在locations表中。

通过遵循此 gem 的 github 页面中的教程,我可以将这些数据存储在Photos表中而没有任何复杂性,但我什至无法想象如何将这种自动地理定位魔法移动到关联的表中。

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

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

4

1 回答 1

0

你看过文档的高级地理编码部分吗?

我正在使用 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

您可以在此处查看来自 Geocoder 的内容result

于 2013-07-20T04:21:03.040 回答