Jeśli mam zasięg z lambda i wymaga on argumentu, w zależności od wartości argumentu, mógłbym wiedzieć, że nie będzie żadnych dopasowań, ale nadal chcę zwrócić relację, a nie pustą tablicę:
scope :for_users, lambda { |users| users.any? ? where("user_id IN (?)", users.map(&:id).join(',')) : [] }
To, czego tak naprawdę chcę, to metoda „none”, przeciwieństwo „all”, która zwraca relację, która może być nadal powiązana, ale powoduje zwarcie zapytania.