使用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
组合,所以应该能够找到正确的位置