Развязка модели домена Rails от Activerecord

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

В Rails кажется обычным делом создавать толстые модели тонких контроллеров с помощью методов модели, эти методы могут управлять другими связанными моделями, так что только одна модель может использоваться в любом данном контроллере. Однако мне интересно, есть ли практика, которая включает полное разделение в Rails?

То есть для создания модели без таблиц или другого класса, который будет использоваться в качестве модели предметной области, действующей как слой между контроллерами и объектами activerecord (которые, в свою очередь, отображаются в таблицах), чтобы контроллеры имели лучшую изоляцию и не нуждались в знать что-либо о базовой базе данных и ее структуре. Это также дает возможность отказаться от методов CRUD, которые не объясняют применяемые ими требования приложений, что является еще одним критическим замечанием в книге.

6
задан François Beausoleil 5 October 2012 в 18:27
поделиться