在以下关联中,我想收集所有没有任何项目的用户 - >
class User < ActiveRecord::Base
has_many :projects, :foreign_key => :user_id
end
class Projects < ActiveRecord::Base
belongs_to :user, :foreign_key => "user_id"
end
从用户模型,我如何获得没有任何项目的所有用户?我尝试使用include和join但没有得到预期的结果
答案 0 :(得分:2)
你可以尝试:
User.where.not(id: Project.pluck(:user_id).uniq)
打破它:
Project.pluck(:user_id).uniq
会从您的项目中为您提供array
个user_id。基本上,用户有项目。
然后:
User.where.not(id: Project.pluck(:user_id).uniq)
返回ID不在具有项目的用户数组中的用户。