我正在嘗試使用GeoKit插件來計算2點之間的距離。所以我的想法是,我搜索一篇文章,並且我想按距離排序。所以我有一個表格,我輸入文章(即時通訊尋找)和我的地址。然後,rails必須找到與我的查詢匹配的所有文章並按地址排序。Rails JOIN TABLES
所以現在,我有兩個模型:文章和用戶。文章belongs_to用戶和用戶has_many文章。在用戶模型中,我有與我的經度和緯度相關的信息。
所以我的文章對象有三個字段:
- 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是用戶對象的成員和不是文章會員。
順便說一句,如果我得到的軌道生成的查詢,我改變了order by子句where articles.lat/lng給users.lat/lng它的工作原理。