Я должен сначала попросить моего ответа, я не использую этот драгоценный камень. При просмотре документации похоже, что вы можете получить то, что вы хотите, передав блок reverse_geocoded_by:
reverse_geocoded_by :lat, :lon do |obj,geo|
obj.city = geo.city
obj.zipcode = geo.postal_code
obj.country = geo.country_code
end
after_validation :reverse_geocode
Более подробная информация содержится в разделе «Расширенное геокодирование».
С вашим фрагментом кода, я думаю, вы хотите что-то похожее на:
reverse_geocoded_by :latitude, :longitude do |obj,geo|
obj.address = [geo.city, geo.state, geo.country_code].join(",")
end
after_validation :reverse_geocode
Я думаю, что доступность города / штата / страны зависит от геокодера, который вы настроили для использования гема. Вы можете посмотреть в https://github.com/alexreisner/geocoder/tree/master/lib/geocoder/results, чтобы увидеть, что заполняется для каждого геокодера.