Это может сработать. Я попробовал это на аналогичном отношении, которое я имею в проекте, и это, кажется, работает. С or
я могу заставить его работать только с немного другой структурой для предложения where
.
Contact.left_joins(:non_medical_reqs, :medicaL_reqs).where('non_medical_reqs.fullfilled = ?', nil).or(Contact.left_joins(:non_medical_reqs, :medicaL_reqs).where('medical_reqs.fullfilled = ?', nil}))
Чтобы проверить это, я бы потянул следующие запросы и сравнил результаты:
Contact.left_joins(:non_medical_reqs).where('non_medical_reqs.fullfilled = ?', nil)
и
Contact.left_joins(:medicaL_reqs).where('medical_reqs.fullfilled = ?', nil})
И убедитесь, что эти два набора совпадают с результатами первого запроса.