หากฉันมีขอบเขตที่มีแลมบ์ดาและใช้การโต้แย้งขึ้นอยู่กับมูลค่าของการโต้แย้งฉันอาจรู้ว่าจะไม่มีการแข่งขันใด ๆ แต่ฉันยังต้องการคืนความสัมพันธ์ไม่ใช่อาร์เรย์ที่ว่างเปล่า:
scope :for_users, lambda { |users| users.any? ? where("user_id IN (?)", users.map(&:id).join(',')) : [] }
สิ่งที่ฉันต้องการจริงๆคือวิธีการ "ไม่มี" ตรงข้ามกับ "ทั้งหมด" ที่ส่งคืนความสัมพันธ์ที่ยังคงถูกผูกมัดอยู่ แต่ผลลัพธ์ในการค้นหาจะเกิดการลัดวงจร