Jika saya memiliki ruang lingkup dengan lambda dan butuh argumen, tergantung pada nilai argumen, saya mungkin tahu bahwa tidak akan ada kecocokan, tapi saya masih ingin mengembalikan relasi, bukan array kosong:
scope :for_users, lambda { |users| users.any? ? where("user_id IN (?)", users.map(&:id).join(',')) : [] }
Apa yang saya benar-benar inginkan adalah metode "tidak ada", kebalikan dari "semua", yang mengembalikan hubungan yang masih bisa dirantai, tetapi menghasilkan kueri yang dihubung pendek.