has_many :through
を照会して、相手側に空の関連付けがあるレコードを確認するにはどうすればよいですか?空のhas_manyから
class Specialty
has_many :doctor_specialties
has_many :doctor_profiles, through: :doctor_specialties
class DoctorProfile
has_many :doctor_specialties
has_many :specialties, through: :doctor_specialties
class DoctorSpecialty
belongs_to :doctor_profile
belongs_to :specialty
は私がSpecialty
の上に列挙することにより、これを行うことができます(私はレール5を使用しています)が、私はSQLクエリでそれを行うにしたいと思います。
Specialty.includes(:doctor_profiles).all.select{|x| x.doctor_profiles.length == 0 }
Rails 5からは、 'includes'ではなく' left_outer_joins'を使用できます - http://guides.rubyonrails.org/active_record_querying.html#left-outer-joinsを参照してください – gmcnaughton