Используются ли модели просмотра в рельсах? - PullRequest
24 голосов
/ 26 марта 2010

Я начинаю разрабатывать небольшое приложение в ruby ​​на рельсах, и возникает много вопросов. Должен сказать, что у меня около 1 года опыта работы с ASP.NET MVC и я чувствую себя как дома с представлениями моделей и контроллерами. Я широко использовал модели представлений (с помощью AutoMapper) и теперь задаюсь вопросом, используются ли модели представлений подобным образом в лагере рельсов.

Из различных примеров (в основном, рельсовых бросков) я понял, что обычно либо объединять данные из нескольких моделей прямо в вашем представлении (что не приветствуется в ASP.NET MVC), либо использовать виртуальные атрибуты в моделях получить «пропущенные» данные.

Я знаю, что бизнес-модель не должна моделироваться после потребностей пользовательского интерфейса, например, в вашей модели не должно быть свойства «подтверждение пароля», это должно быть свойство модели представления.

Виртуальные свойства Rails, кажется, нарушают этот принцип.

Как это делается в рельсах?

Спасибо.

1 Ответ

16 голосов
/ 26 марта 2010

Если я правильно понимаю понятие View Model, это концепция, которая не сразу очевидна в Rails, но она также не запрещена, не осуждаема и не запрещена. Нет особого требования к идеальному сопоставлению моделей с таблицами «один к одному», поэтому вы можете работать на подходящем уровне абстракции.

Я не думаю, что ссылки на несколько моделей в представлении считаются особенно плохими (если это так, у меня есть некоторые области, которые требуют небольшой доработки), хотя обновление нескольких моделей из одного представления может быть немного сложнее. *

Во всяком случае, в Rails я думаю, что мы говорим о том, что обычно называют паттерном "Presenter". Некоторые ссылки (Google "Rails Presenter Pattern" больше, чем вы, вероятно, хотите или нуждаетесь):

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...