рубин на направляющих dto объекты - Где Вы храните их?

Кто-либо здесь использует DTO для передачи данных от контроллера до представления? Если так, где Вы рекомендовали бы хранить те файлы?/apps/dtos, и затем позволяют им зеркально отразить структуру dir представлений? Какие-либо рекомендации на тестировании этих животных с rspec?

5
задан Jeff D 19 July 2010 в 20:43
поделиться

3 ответа

Согласно соглашению Rails, распределенные уровни для уровней контроллера и представления не используются. Разделение есть, но оно логично и относительно тонко / легковесно по сравнению с типами фреймворков, которые вы видите в стране Java.

Базовая архитектура заключается в том, что контроллер устанавливает переменные экземпляра, доступные в соответствующем представлении. В общем случае переменные экземпляра будут экземплярами модели или коллекциями экземпляров модели (поступающими из базы данных). Модели должны быть основой вашей бизнес-логики. Контроллеры координируют потоки данных. Представления отображают это. Помощники используются для форматирования отображаемых значений в представлении ... всего, что принимает значение модели и делает что-то только для целей отображения (вы можете обнаружить, что многократно используемый вспомогательный метод может быть лучше для самой модели).

Однако, если вы обнаружите, что представление требует знания множества различных моделей, вам может быть проще перенести модели в другой объект на более высоком уровне абстракции. Ничто не мешает вам создавать объекты с неактивными записями, которые собирают и координируют ваши фактические модели AR. Затем вы можете создать экземпляры этих объектов в контроллере и сделать их доступными для представления. Как правило, для того, чтобы вам понадобились такие вещи, вы должны быть на довольно высоком уровне сложности в контроллере.

Я бы предпочел добавить такие объекты в приложения / модели - Rails уже загружает все в этот каталог, упрощает работу с точки зрения конфигурации / ожидания.

7
ответ дан 13 December 2019 в 22:00
поделиться

Мне сказали, что обычно эту работу выполняют "помощники". Они в основном помогают вам форматировать объекты модели для использования в представлении из самого представления. Так что это определенно не 1-1 отображение концепций, но таково мышление в мире рельсов

.
0
ответ дан 13 December 2019 в 22:00
поделиться

Если вы работаете с .NET или J2EE, возможно, вы думаете о таких шаблонах, как DTO. Вы можете или не можете быть удивлены (и, возможно, счастливы), узнав, что Rails не делает этого по соглашению.

В частности, нет никакой необходимости формально передавать (или хранить) сериализованные объекты между контроллерами и представлениями. Переменные экземпляра (обычно значения атрибутов модели), созданные в контроллере, доступны в представлении бесплатно, как это предусмотрено структурой, без каких-либо дополнительных усилий по программированию.

0
ответ дан 13 December 2019 в 22:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: