Внутреннее соединение Rails в сочетании с геокодированием

У меня есть 2 модели рельсов

class Location < ActiveRecord::Base
  has_many :rates
  geocoded_by ....
end

class Rate < ActiveRecord::Base
 belongs_to :location
end

Я использую Geocoder Gem -http://www.rubygeocoder.com

Я хочу найти все тарифы с определеннымpair атрибут, который находится на определенном расстоянии от пользователя.

В SQL я бы сделал внутреннее соединение по ставкам

SELECT * FROM rates INNER JOIN locations ON rates.location_id=locations.id;

Затем вставьте условие where для фильтрации в атрибуте пары, а затем используйте геокодер 'Метод ближнего в результирующей таблице (метод ближнего работает, вставляя условие запроса в запрос, который вычисляет расстояние, используя атрибуты широты и долготы для местоположения), чтобы выбрать только строки на правильном расстоянии

Как я могу сделать это в рельсах? Я старался

rates = Rate.joins(:locations)

я получил

ActiveRecord::ConfigurationError: Association named 'locations' was not found; perhaps you misspelled it?

я хочу сделать это

rates = Rate.joins(:locations).near(my_latitude, my_longitude, distance).where(:rates => {:pair => 'xxxx'})

но я получаю

undefined method `near' for #

Ответы на вопрос(2)

Ваш ответ на вопрос