Se ho un ambito con un lambda e ci vuole un argomento, a seconda del valore dell'argomento, potrei sapere che non ci saranno corrispondenze, ma voglio comunque restituire una relazione, non un array vuoto:
scope :for_users, lambda { |users| users.any? ? where("user_id IN (?)", users.map(&:id).join(',')) : [] }
Quello che voglio davvero è un metodo "none", l'opposto di "all", che restituisce una relazione che può ancora essere concatenata, ma si traduce in un cortocircuito della query.