ラムダ付きのスコープがあり、引数を取る場合、引数の値によっては、一致がないことはわかっているかもしれませんが、空の配列ではなく、関係を返したいと思います。
scope :for_users, lambda { |users| users.any? ? where("user_id IN (?)", users.map(&:id).join(',')) : [] }
私が本当に望んでいるのは、「すべて」の反対である「なし」メソッドです。これは、まだ連鎖できるリレーションを返しますが、クエリが短絡されます。