Si j'ai une portée avec un lambda et qu'il faut un argument, selon la valeur de l'argument, je sais peut-être qu'il n'y aura pas de correspondance, mais je veux toujours 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 entraîne un court-circuit de la requête.