为城市状态添加单独的值到数据库



使用geocoder gem

有人能告诉我,如果我添加这些列,我能得到城市和州自动进入数据库吗?

在下面的例子中,我传入的:cs是一个address

class Location < ActiveRecord::Base
  attr_accessible :cs, :latitude, :longitude
  geocoded_by :cs
  after_validation :geocode, :if => :cs_changed?
  has_many :shipments, :foreign_key => :origin_id
  has_many :shipments, :foreign_key => :dest_id
end

我需要保存已解析的地理编码的城市和州。

或者想办法让gecoder从数据库中给我一个特定州组的位置列表

我将传入数组[mo,il,ks,ar]或字符串"mo,il,ks,ar"

i have try:

Location.near([mo,il,ks,ar])

我可以这样做:

Location.near("springfield, mo", 20)

经过大量的研究,我发现了这一点,我添加了City和State两列,并这样做:

实际工作代码:这将从结果中添加城市和州…

class Location < ActiveRecord::Base
  attr_accessible :cs, :latitude, :longitude, :city, :state
  after_validation :geocode, :if => :cs_changed?
  has_many :shipments, :foreign_key => :origin_id
  has_many :shipments, :foreign_key => :dest_id
  geocoded_by :cs do |obj, results|
    geo = results.first
    if geo
      obj.latitude = geo.latitude
      obj.longitude = geo.longitude
      obj.city  = geo.city
      obj.state = geo.state_code
    end
  end
end

我还想说,我的输入字段是利用GeoComplete Gem,在它到达这里之前给出有效的City, St, Country组合,所以应该能够找到正确的位置

相关内容

最新更新