Gem geocoder Place.near возвращает неверную коллекцию? - PullRequest
0 голосов
/ 01 декабря 2018

У меня есть массив мест (коллекция ActiveRecord), который я сортирую:

@places = Place.all

if params.key? "sort"
  if params["sort"] == "best_speed"
    @places = @places.joins(:speed_tests).group("places.id").order('avg(speed_tests.download) DESC')
  elsif params["sort"] == "more_speed_tests"
    @places = @places.joins(:speed_tests).group("places.id").order('count(speed_tests.download) DESC')
  else
    # other scenario
  end
end

Этот код работает отлично.Если я использую метод рядом с геокодером, моя сортировка больше не работает:

if params.key? "address"
  results = Geocoder.search(params[:address])
  coords = results.first.coordinates
  @places = Place.near(coords, radius)
else
  @places = Place.all
end

if params.key? "sort"
  if params["sort"] == "best_speed"
    @places = @places.joins(:speed_tests).group("places.id").order('avg(speed_tests.download) DESC')
  elsif params["sort"] == "more_speed_tests"
    @places = @places.joins(:speed_tests).group("places.id").order('count(speed_tests.download) DESC')
  else
    # other scenario
  end
end

Я потерялся, потому что не могу отладить, он просто игнорирует сортировку, у меня те же места, отсортированные какони были.Я понял, что проблема в методе .near, потому что, если я применил свой запрос сортировки к Place.all, он работает, а если я применил его к Place.near, он не работает.

Любая подсказка, чтопроисходит?

Заранее спасибо

...