- Slim-down models / controllers
- Dissect big queries
- Make testing queries easier
- It's a PORO
- Overrides ActiveRecord standard query methods like
all - Query objects can be composed (as long as they return relation)
- QUery objects can be extended by inheritance
- Represents only a query, not a business logic
- Original article
- Method extending
- Method presence_in