2012-01-24 4 views
5

Estoy en el proceso de cambiar mi aplicación para usar el geocodificador. En mi tabla de lugares, tengo columnas para dirección, lat, lng, street_address, city & zip. Usando geocodificador estoy feliz capaz de llenar lat, lng & columnas de dirección después de la validación con la siguiente en mi modelo lugaresUsando Geocoder, ¿hay alguna forma de guardar el nombre de la calle, la ciudad y el código postal para separar las columnas?

attr_accessible :address, :lat, :lng  
geocoded_by :address, :latitude => :lat, :longitude => :lng 
after_validation :geocode, :if => :address_changed? 

¿Hay una manera de tener también geocodificador añadir el nombre de la calle, ciudad y cremallera a tres otras columnas separadas?

Respuesta

10

Todavía soy nuevo en los rieles, así que me perdí esto al principio, pero espero que esto ayude a alguien más.

en mi modelo

geocoded_by :address do |obj,results| 
    if geo = results.first 
    obj.city = geo.city 
    obj.lat = geo.latitude 
    obj.lng = geo.longitude 
    obj.zip = geo.postal_code 
    obj.state = geo.state 
    obj.country = geo.country_code 
    end 
end 

y en mi opinión

@tonic.address = params[:address] 
+1

Gracias! No sabía que 'geocoded_by' también podría tomar un bloque – Damien

Cuestiones relacionadas