2017-12-05 12 views
0

, 내가 어떻게 어떤 프로젝트가없는 모든 사용자가 얻을 수있는 프로젝트 즉, 사용자 모델에서>has_many 관계가 존재하는 레코드를 찾는 방법을 레일로? 아래의 협회에서

class User < ActiveRecord::Base  
    has_many :projects, :foreign_key => :user_id 
end 

class Projects < ActiveRecord::Base 
    belongs_to :user, :foreign_key => "user_id" 
end 

이없는 모든 사용자를 수집 할?

User.where.not(id: Project.pluck(:user_id).uniq) 

내려 속보 :

Project.pluck(:user_id).uniq 

이 프로젝트에서 당신에게 user_ids의 array을 줄 것이다 나는

답변

1

당신은 시도 할 수 및 가입을 포함하여 시도하지만 예상 결과를 얻을하지 않았다 . 본질적으로 프로젝트를 가진 사용자. 그런 다음

: 프로젝트와 사용자의 배열에없는 ID를 가지고

User.where.not(id: Project.pluck(:user_id).uniq) 

사용자를 반환.

+0

이것은 최고의 Ruby-way 솔루션입니다! 간단하고 쉬운. –

+1

감사합니다. 이 작품! – KavitaC