Объединение нескольких запросов в Rails

Я хотел бы объединить несколько запросов, которые относятся к разным моделям, возможно ли это?

Пример: у меня есть рестораны, в которых много блюд. Я хочу искать рестораны, которые находятся рядом с местом, а затем искать блюда, которые есть в этих ресторанах, которые соответствуют запросу. Я использую geocoder и PGSearch для обоих запросов, но я не знаю, как заставить их работать вместе, чтобы у меня был один запрос вместо того, чтобы загружать все близлежащие рестораны в память, а затем искать по запросу.

Спасибо!


person babaloo    schedule 16.10.2014    source источник


Ответы (1)


Вам нужно использовать «объединения», я не использовал ни один из этих драгоценных камней, но я собираюсь добавить общий поиск активной записи, и впоследствии вы можете адаптировать его к вашей ситуации:

Restaurante.where(query_on_restaurante).joins(:dishes).where(dishes:{query_on_dishes})

куда:

query_on_restaurantes может быть примерно таким: location:"Hawai" :dishes предполагается именем отношения (ресторан имеет_много блюд) query_on_dishes может быть примерно таким: name:"Cheetos"

ВНИМАНИЕ на квадратные скобки во втором операторе where.

person Myxoh    schedule 16.10.2014