3

アプリケーションで GeoCoder を使用しています。ここで、位置に近い、または特定の属性セットを持つデータベース内のオブジェクトを検索する必要があります。データベースは非常に巨大であるため、このアクションを 1 つのデータベース クエリで実行したいと考えています。

次のようなものが欲しい

  Spot.near([lat,long],distance).where("visited = ?",true). 

距離と訪問属性は、AND ではなく OR で結合する必要があります。

これを行う方法を知っている人はいますか?

ありがとうございました!

4

1 に答える 1

4

この回答に基づいて、次のようなことができるはずです。

near = Spot.near([lat, long], distance)
visited = Spot.where(visited: true)

near = near.where_values.reduce(:and)
visited = visited.where_values.reduce(:and)

Spot.where(near.or(visited))
于 2013-02-24T22:08:36.593 に答える