Si j'ai une portée avec un lambda et qu'il prend un argument, en fonction de la valeur de l'argument, je pourrais savoir qu'il n'y aura pas de correspondance, mais je veux quand même renvoyer une relation, pas un tableau vide:
scope :for_users, lambda { |users| users.any? ? where("user_id IN (?)", users.map(&:id).join(',')) : [] }
Ce que je veux vraiment, c’est une méthode «none», à l’opposé de «all», qui renvoie une relation qui peut encore être chaînée, mais qui provoque un court-circuit de la requête.