Как проверить связанные модели - PullRequest
2 голосов
/ 24 февраля 2020

У меня есть модель событий и модель сервиса. Я должен возвращать записи событий на основе параметров. У меня есть два параметра city and service. Город присутствует в модели события, а сервис - это имя сервиса, которое находится в модели сервиса. Я пробовал следующее:

Event.all.map{|event| event.city == params[:city] && event.services.map{|service| service.where("lower(name) LIKE ?", "#{params[:service]} %")}}

Но пока не повезло, если кто-то мог помочь, это было бы здорово. Спасибо.

1 Ответ

2 голосов
/ 24 февраля 2020

Вы можете использовать joins, чтобы добавить предложение INNER JOIN к вашему запросу и таким образом получить доступ к службам, связанным с каждым событием. Имея это, вы можете использовать их столбец name и фильтровать их, используя ActiveRecord:

Event.joins(:services)
     .where(city: params[:city])
     .where('LOWER(services.name) LIKE ?', "#{params[:service]}%")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...