Автоматическое заполнение мест прерывает поисковый запрос к базе данных рельсов (Rails 5)

У меня есть функция поиска в моем контроллере по базе данных, подключенной к Google Maps, чтобы показать местоположения:

ransack_params = Listing.process_search(params[:s_q])
...(variables)
query = params.dig('s_q','query')
if !query.nil? && query.match(/\b(st)\b|\b(street)\b/i).nil?
 map_center = Geocoder.coordinates(query + ", Ontario, Canada")
 !map_center.nil? ? @center_cords = map_center : nil
end

if @listings.length == 0 && params[:ss] != "y" && !query.nil?
  geo_search = Geocoder.search(query + ", Ontario, Canada")[0]
  @search_suggestion = geo_search.route if geo_search.present?
end
...

В модели есть целое, что разбивает входные данные и касается конкретных фраз, но дело в том, что они нацелены на очень конкретные столбцы в моей базе данных. Тем не менее, мы хотели автозаполнение для адресов, добавленных в карту, поэтому в файле javascript, который я добавил (Gogle Maps Javascript Places Autocomplete):

if ($('#map').length) {
  window.map = new google.maps.Map(document.getElementById('map'), {
    zoom: 11,
    center: toronto,
    disableDefaultUI: false,
    scrollwheel: false,
    streetViewControl: false,
    fullscreenControl: false,
    mapTypeControl: false
    });
  *var input = document.getElementById('s_q_query');* (search input)
  ***var autocomplete = new google.maps.places.Autocomplete(input);
  autocomplete.bindTo('bounds', map);*** (places autocomplete).

Это прекрасно работает! Однако теперь автозаполнение не возвращает списков, когда я разрешаю полное автозаполнение и запускаю поиск по нему. Так что теперь автозаполнение отключило поисковый ввод из списка. Я подозреваю, что мне нужно взять мой ввод и нарезать его, если он проходит через автозаполнение. Я на правильном пути?

0 ответов

Другие вопросы по тегам