Summary
In this chapter, you learned about the query objects and repository abstractions and how they could be used to reduce Active Record models’ responsibility. You practiced turning a design pattern into an abstraction layer. You also learned about the domain services layer and its place in the layered architecture.
In the next chapter, we will further explore how to reduce Active Record models’ responsibility by introducing abstractions from the upper architecture layers, such as the presentation layer.