2

나는 PhotosLocations의 앱을 보유하고 있습니다. 난 할 노력하고있어지오 코더 데이터를 별도의 테이블에 저장하는 방법은 무엇입니까?

class Photo < ActiveRecord::Base 
    belongs_to :location 
end 

class Location < ActiveRecord::Base 
    has_many :photos 
end 

는 사진이 :address 필드를 사용하지만, 내가 locations 테이블의 위치 정보 데이터를 저장할 (geoocoder gem와) 자동하는 GEOLocate이다.

이 보석 github 페이지의 자습서를 따르면 나는이 데이터를 아무런 문제없이 Photos 테이블에 저장할 수 있지만이 자동 geolocation 마법을 연결된 테이블로 이동하는 방법을 상상할 수도 없습니다 .

태그가 지정된 것처럼 주소가 이미 입력되어있는 경우 locations 테이블에 스크립트를 추가해야하며 새 사진/업데이트 된 사진과 연결해야합니다. 그러나 db에 그러한 주소가 없으면 새로운 위치 기록을 작성해야합니다.

일반적으로 직접 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

에서오고 볼 수 있습니다