2017-12-05 10 views
0

は、私がどのように私はすべてのプロジェクトを持っていないすべてのユーザーが取得することができ、任意のprojects- Userモデルから>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 

を持たないすべてのユーザーを集めたいですか?私は、使用してみましたと参加が、あなたが試みることができると予想結果

答えて

1

を取得できませんでした:

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

それを破壊:

Project.pluck(:user_id).uniq 

は、プロジェクトからあなたにuser_idsのarrayを与えます。本質的に、プロジェクトを持つユーザー。その後

User.where.not(id: Project.pluck(:user_id).uniq) 
プロジェクトとユーザーの配列にないIDを持つユーザーを返し

+0

これは最高のRuby-wayソリューションです。シンプルで簡単。 –

+1

ありがとうございます。これは動作します! – KavitaC

関連する問題