2015-12-14 85 views
0

我需要geocode用戶地址經緯度&存儲在數據庫中。如何從多個模型地理編碼地址?

地址表

country_id: int 
state_id: int 
local_address: string 
latitude: float 
longitude: float 

我有單獨的countries and states表。 因此,要獲得緯度&長期價值,我需要這樣的:

geocoded_by :address 
def address 
    [local_address, state, country].compact.join(', ') 
end 

但問題是,這是在模型(Address類)完成,我需要訪問其他表:國家&狀態。

所以,無法想出辦法。任何工作建議表示讚賞。

回答

3

在你的模型,你需要有關聯的國家和狀態表 我假設你正在保存的狀態ID和COUNTRY_ID

class User < ActiveRecord::Base 
    belongs_to :state 
    belongs_to :country 

    geocoded_by :address 
    def address 
    [local_address, state.name, country.name].compact.join(', ') 
    end 
end 
+0

呀!有效!!它需要進行正確的關聯,並使用「Model.attribute_name」將它們一起加入到單個地址中。感謝您的快速響應。 – narush

+0

不是我們都在那裏的問題,我們需要另一組眼睛 – MZaragoza