3

Я использую GeoCoder в своем приложении. Теперь мне нужно искать объекты в моей базе данных, которые близки к позиции или имеют определенный набор атрибутов. Я хотел бы выполнить это действие в одном запросе базы данных, потому что база данных действительно огромна.Ruby On Rails - Геокодер - Рядом с условием

Я хотел бы иметь что-то вроде

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

расстояние и посещаемый атрибут должен быть объединен с OR, а не с AND.

У кого-нибудь есть идея, как это сделать?

Спасибо!

ответ

4

Основе с this ответ, вы должны быть в состоянии сделать что-то вроде:

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)) 
+0

Hej Луки, Спасибо за ваш ответ. Я попробую его позже. Я отправлю, если это сработает ... – Sebastian

+0

@ Sebastian это сработало? –

+0

My where values ​​был вложенным массивом, поэтому мне пришлось перебрасывать '.flatten' перед' .reduce'. Кроме того, он работает хорошо. – lime

 Смежные вопросы

  • Нет связанных вопросов^_^