Я думаю, если я понимаю проблему, это может быть правильным решением, которое вы ищете
Данная модель с известным адресом автоматически выбирает компоненты адреса и сохраняет их в отдельных атрибутах:
geocoded_by :address do |obj,results|
if geo = results.first
obj.city = geo.city
obj.zipcode = geo.postal_code
obj.country = geo.country_code
end
end
after_validation :geocode
Каждый объект Geocoder :: Result, result, предоставляет следующие данные:
result.latitude - float
result.longitude - float
result.coordinates - array of the above two
result.address - string
result.city - string
result.state - string
result.state_code - string
result.postal_code - string
result.country - string
result.country_code - string
Если вы знакомы с результатами, возвращаемыми используемой вами службой геокодирования, вы можете получить доступ к еще большему количеству данных, но вам нужно быть знакомым с конкретным объектом Geocoder :: Result и его структурой. ответов вашей службы геокодирования.
Thx