Я искал лучший подход, чтобы быстрее получить этот запрос в рельсах. В настоящее время это занимает много времени из-за вычислений геокодера.
Vehicle.includes(:user)
.where.not('users.id' => nil)
.where(country: 'United Kingdom')
.where.not(name: [nil, ''])
.select { |vehicle|
vehicle.longitude.present? &&
Geocoder::Calculations.distance_between(
[vehicle.latitude,vehicle.longitude],
[location.latitude,location.longitude]
).between?(0, 200)
}
Примечание. В настоящее время используется база данных PostgreSQL 9.5.14.