hashand_belongs_to_many로 연결된 두 모델의 사용자 및 회사가 있습니다. 내가 특정 회사에 속하지 않는 모든 사용자를 찾는레일/액티브 레코드 has_and_belongs_to_many association - 레코드를 가져 오는 중
Company.find(id).users
내가 한 문제를 사용하여 특정 회사에 속한 모든 사용자를 가져올 수 있습니다. 글쎄, 할 수있어
User.all - Company.find(id).users
그러나 나는 확실히 이것을 달성하는 좋은 방법이 있다고 느낀다. 거기에 activerecord 솔루션이 있습니까?
현재 8 명의 사용자가 있습니다 (1에서 8까지의 ID). 시도 할 때
User.joins(:companies).where('companies.id = ?', 13).map(&:id)
예상대로 결과 [7, 8]가 표시됩니다. 위의 쿼리에서! =을 입력하면 결과는 원하는대로 표시되지 않습니다. 즉, 1에서 6까지의 배열입니다.
도움이 필요합니다. 감사합니다. .
답장을 보내 주셔서 감사 드리며 늦게 답변을 드려 죄송합니다. 그러나 이는 각 사용자에 대한 쿼리를 실행합니다. 즉, 필자의 경우 총 8 개의 쿼리가 발생합니다. 해고되는 쿼리의 수에 대해 걱정해야한다고 생각합니다. 해결 방법이 있습니까? – prasvin
그래, 그 n + 1 쿼리 wtf 꽤 그 제안을 열심히 ... 편집, 새 버전을 시도 ... 더 효율적으로해야합니다. –