Цепочка нескольких запросов в Rails

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

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

Спасибо!

1 ответ

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

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

где:

query_on_restaurantes может быть что-то вроде: location:"Hawai": предполагается, что блюда называются отношениями (Restaurante has_many блюда) query_on_dishes может быть что-то вроде: name:"Cheetos"

ЗАМЕТЬТЕ скобки на втором операторе where.

Другие вопросы по тегам