8

この優れた宝石https://github.com/alexreisner/geocoderがアプリで正常に動作していますが、アクティブ レコード クエリの結果を少し異なる順序で並べる必要があります。

たとえば、Rails コンソールを使用して

$> Person.near('London',10)

長い SQL クエリ (無関係) を生成し、その後に続く

ORDER BY distance ASC

これにより、最も近い人から最も遠い人 (最大 10 マイル離れた人) の順序付きリストが得られます。今これをしたら

$> Person.near('London',10).order('price_per_hour')

クエリはによって追加されます

ORDER BY distance ASC, price_per_hour

私はまだすべての人がロンドンの近くにいることを望んでいますが、距離によって並べ替えることは望んでいません. とにかくこれを取り出すことはないようです。

ページネーションを使用しているため、アクティブなレコードクエリの外で並べ替えることができません。そのため、メインクエリで順序付けを行う必要があり、その後ページネーションされます。

4

2 に答える 2

17

reorder代わりに試してくださいorder

Person.near('London',10).reorder('price_per_hour')

は、スコープによって作成されたステートメントをreorder削除して置き換えます。ordernear

于 2012-12-20T09:29:48.793 に答える