Rails ассоциации SQL - PullRequest
       10

Rails ассоциации SQL

1 голос
/ 30 сентября 2019

У меня есть модель User и модель SkillList.

Ассоциация - has_many / belongs_to.

Таким образом, я могу найти запись списка навыков для одного пользователя:

current_user.skill_list

В таблице пользователей есть поля: id, name и location.

Мне нужно запросить базу данных, чтобы найти всех пользователей, которые имеют местоположение и навыки.

Я могу найти всех пользователей с существующим местоположением (не включая текущего пользователя):

users = User.where.not(location: nil, id: current_user.id)

Но как исключить пользователей без навыков?

1 Ответ

1 голос
/ 30 сентября 2019

Вы должны просто использовать joins, который по умолчанию выполняет SQL INNER JOIN, что в данном случае именно то, что вам нужно:

User.where.not(location: nil).joins(:skill_list)
...