Forum: Ruby on Rails Rails Join problem

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
06cc84260bff88e4217a2f8843b03b9d?d=identicon&s=25 VP (Guest)
on 2008-11-27 16:43
(Received via mailing list)
Hi, i'm trying to use the GeoKit plugin to calculate the distance
between 2 points. So the idea is, i do a search for an article, and
the results i want to order by distance. So i have a form where I
enter the article (that im looking for) and my address. Then rails
must find all articles that match with my query and order by address.

So now, i have two models: Article and User. Articles belongs_to User
and User has_many Articles. At the User model i have the info related
with my latitude and longitude.

So my Article object has three fields: id name user_id (FK to User
model)

And my user model has four fields id name lat (latitude) lng
(longitude)

OK, to have access to the user info thru articles i do the query:

@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")

it works. But when i wanna add an :order=>'distance ASC' it fails
because the order by query is using a Article.lat, and Article.lng
fields to calculate the distance, but these fields lat and lng, are
User object's members and not Article member.

BTW if I get the query generated by rails and i change the order by
clause where uses articles.lat/lng to users.lat/lng it works.
This topic is locked and can not be replied to.