У меня есть две модели пользователя и компании, связанные с has_and_belongs_to_many. я могу извлечь все пользователи, принадлежащие к определенной компании, используяRails/Active Record has_and_belongs_to_many объединение - получение записи
Company.find(id).users
Проблема Я находит всех пользователей, которые не принадлежат к определенной компании. Ну, я мог бы это сделать, используя
User.all - Company.find(id).users
Но, я чувствую, что есть, конечно, лучший способ достичь этого. Есть ли решение activerecord для этого?
В настоящее время у меня есть 8 пользователей (от 1 до 8). Когда я пытаюсь,
User.joins(:companies).where('companies.id = ?', 13).map(&:id)
Я получаю результат [7, 8], который как и ожидалось. Когда я размещаю! = В приведенном выше запросе, результаты не то, что я хочу, то есть массив от 1 до 6.
Нужна помощь. Спасибо.
Спасибо за быстрый ответ и жаль позднего ответа. Но это вызывает запрос для каждого пользователя, то есть в моем случае всего 8 запросов. Думаю, я должен беспокоиться о количестве запущенных запросов. Есть ли обходной путь? – prasvin
Да, я ударил, что n + 1 запросов wtf довольно сложно с этим предложением ... Я редактировал, попробовал новую версию ... должен быть более эффективным. –