如何从多个模型中进行地理编码地址?

时间:2015-12-14 18:51:19

标签: ruby-on-rails ruby model geocoding rails-geocoder

我需要geocode用户的地址进入纬度和广度经度存储在数据库中。

地址表

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

我有单独的countries and states表。 所以,要获得lat&长期价值我需要这样的东西:

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

但问题是,这是在模型(地址类)中完成的,我需要访问其他表:countries&的状态。

所以,无法想出办法。任何工作建议都表示赞赏。

1 个答案:

答案 0 :(得分: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