Я исхожу из фона .NET, где принято не привязывать модели домена/сущности непосредственно к представлению в не очень простых CRUD-приложениях, где представление не проецирует напрямую поля сущности как есть.
Мне интересно, какова практика в RoR, где механизмом сохранения по умолчанию является ActiveRecord. Я бы сказал, что информация, связанная с презентацией, не должна передаваться сущностям, хотя не уверен, что настоящие главы RoR поступили бы так.
Если DTO/модель для представления является подходом, как вы будете делать это в Rails?
Твои мысли?
ИЗМЕНИТЬ:
Некоторые примеры:
– В представлении отображается список счетов-фактур с количеством уникальных элементов в одном столбце.
– Список счетов кредитных карт, по которым, возможно, были выполнены мошеннические операции. Для этого пользовательский интерфейс должен отображать эту строку красным цветом.
В обоих сценариях в списках отображаются не все поля сущностей, а лишь некоторые из них, отображаемые в списке (например, номер счета, дата транзакции, имя учетной записи, сумма транзакции).
В примере со счетом-фактурой объект счета-фактуры не имеет сопоставленного с ним поля «Количество позиций». База данных не была денормализована по соображениям производительности, и она будет вычисляться во время запроса с использованием агрегатных функций.
Для примера со счетами кредитных карт, конечно же, объект транзакции карты не имеет инварианта «Показать в красном» или «Является мошенническим». Да, это может быть бизнес-правилом, но для этого примера это проблема представления, поэтому я хотел бы не допустить его в свою модель предметной области.