Вы можете добавить область под названием «none»:
scope :none, where(:id => nil).where("id IS NOT ?", nil)
Это даст вам пустой ActiveRecord :: Relation
Вы также можете добавить его в ActiveRecord :: Base в инициализаторе (если хотите):
class ActiveRecord::Base
def self.none
where(arel_table[:id].eq(nil).and(arel_table[:id].not_eq(nil)))
end
end
Множество способов получить что-то подобное, но, конечно, не самое лучшее, что можно сохранить в кодовой базе. Я использовал область действия: ни один при рефакторинге и обнаружил, что мне нужно в течение короткого времени гарантировать пустой ActiveRecord :: Relation.