When you query for something (with #where
) and there are no results matching
that query, you get something that looks like an empty array ([]
), but it's
not quite.
> result
[]
> result.class
Book::ActiveRecord_Relation
It's an empty ActiveRecord
relation.
You can get an instance of an empty ActiveRecord
relation without
constructing a no result query.
> Book.none
[]
> Book.none.class
Book::ActiveRecord_Relation
I can think of a couple scenarios where this would be useful:
- as a default value for a method parameter
- as a test value for a method that expects to have an
ActiveRecord
relation passed in