Гем geocoder автоматически реверсирует геокодирование при сохранении, если в модель включена линия after_validation :reverse_geocode
. Это приводит к тому, что в качестве адреса сохраняется длинная строка текста — формат примерно такой: «Название улицы, название города, название округа, название штата, почтовый индекс, название страны».
Меня интересует только название улицы для этого конкретного проекта, поэтому мне интересно, есть ли способ изменить вызов after_validation
, чтобы сохранить только эту информацию.
Если я выполняю обратное геокодирование вручную, я могу получить доступ к значению road
в результате:
place = Place.first
result = Geocoder.search("#{place.latitude},#{place.longitude}")
street = result[0].data['address']['road']
Я мог бы настроить свой собственный after_validation
, который делает именно это, но я бы не хотел дублировать функциональность, если geocoder
уже предоставляет это.
В качестве альтернативы, если есть совершенно другой способ преобразования широты/долготы в название улицы, мне было бы интересно узнать об этом. Было бы нормально, если бы эта опция также включала номер адреса или диапазон адресов.