Геокодирование gem-кодирования в Rails с использованием пользовательского формата адреса - PullRequest
0 голосов
/ 03 марта 2019

Я использую геокодер для получения широты и долготы от адреса

В модели я добавил

class Clinic < ApplicationRecord
    geocoded_by :full_street_address
    after_validation :geocode

    def full_street_address
      [address_line1, city, state, country].compact.join(', ')
    end
end

, и клиент предоставил мне адреса, подобные этому

{
    "name": "Bahrain Defence Force Royal Medical Services Hospital - Riffa",
    "address_line1": "West Riffa P O Box 28743",
    "country": "Bahrain",
    "state": "Al-Wusta",
    "city": "Riffa"
}

Теперь, когда я создаю клинику, она не возвращает широту и долготу,

Кажется, что проблема связана с адресом, а не со следующей строкой

[address_line1, city, штат, страна] .compact.join (',')

Есть ли способ, которым я могу конкретно предоставить почтовый индекс и т. д. или как обращаться с вышеуказанным адресом?

1 Ответ

0 голосов
/ 03 марта 2019

Предполагая, что вы следовали документации Geocoder и добавили атрибуты longitude и latitude к своей модели, я попробовал ваш код, вам просто нужно добавить after_validation :geocode или использовать метод :geocode в любом обратном вызове, который вы хотите.

РЕДАКТИРОВАТЬ:

Хорошо, поэтому я думаю, что я не обновил страницу к тому времени, когда ваш вопрос был обновлен, но я попробовал точно такой же код, и он работалкак и ожидалось.

...