Автоматическое заполнение мест прерывает поисковый запрос к базе данных рельсов (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).
Это прекрасно работает! Однако теперь автозаполнение не возвращает списков, когда я разрешаю полное автозаполнение и запускаю поиск по нему. Так что теперь автозаполнение отключило поисковый ввод из списка. Я подозреваю, что мне нужно взять мой ввод и нарезать его, если он проходит через автозаполнение. Я на правильном пути?