Я читал книгу «Антипаттерны SQL: избегая ловушек программирования баз данных», особенно о антипаттернах magic beans. На нем показана диаграмма, разделяющая активные записи с использованием модели предметной области, и есть пример в PHP, но не в Rails, это называется агрегированием HAS-A между моделями предметной области и представлениями / контроллерами и композицией HAS-A между моделями предметной области и активными записями (I предположим, что это язык UML).
В Rails кажется обычным делом создавать толстые модели тонких контроллеров с помощью методов модели, эти методы могут манипулировать другими связанными моделями, так что только одна модель может использоваться в любом данном контроллере. Однако мне интересно, существует ли практика, которая включает полное разделение в Rails?
То есть для создания модели без таблиц или другого класса, который будет использоваться в качестве модели предметной области, действующей как слой между контроллерами и объектами activerecord (которые, в свою очередь, отображаются в таблицах), чтобы контроллеры имели лучшую изоляцию и не нуждались в каких-либо знаниях. о базовой базе данных и ее структуре. Это также дает возможность отказаться от методов CRUD, которые не объясняют требования приложения, которые они применяют, - еще одна критика в книге.