Я пытаюсь использовать плагин GeoKit для вычисления расстояния между двумя точками. Итак, идея в том, что я ищу статью, и результаты, которые я хочу заказать по расстоянию. Поэтому у меня есть форма, в которой я ввожу статью (которую я ищу) и мой адрес. Затем рельсы должны найти все статьи, соответствующие моему запросу и порядку по адресу.Rails JOIN TABLES
Итак, у меня есть две модели: статья и пользователь. Статьи принадлежат пользователю и пользователю has_many. В модели User у меня есть информация, связанная с моей широтой и долготой.
Так моя статья объект имеет три поля:
- ID
- имя
- user_id (FK в модели пользователя)
И моя модель пользователя имеет четыре поля
- ID
- имя
- лат (широта)
- LNG (долгота)
OK, чтобы иметь доступ к информации пользователя через статей я сделать запрос:
@articles = Article.find(:all,:conditions=>"vectors @@ to_tsquery('büch')",:joins=>" INNER JOIN users ON users.id = articles.user_id",:include=>:user,:origin=>"Augustusplatz,8,leipzig,germany")
это работает. Но когда я хочу добавить: order => 'distance ASC', он терпит неудачу, потому что порядок по запросу использует поля Article.lat и Article.lng для вычисления расстояния, но эти поля lat и lng являются членами объекта пользователя и не член статьи.
BTW, если я получаю запрос, сгенерированный рельсами, и я изменяю порядок order by, где использует articles.lat/lng для users.lat/lng, он работает.