Ruby on Rails MVC разъяснения - PullRequest
       0

Ruby on Rails MVC разъяснения

1 голос
/ 31 августа 2011

Я изучаю RoR, и два разных источника описывают отношения View с браузером несколько иначе. Один источник описывает Контроллер как возвращающий запросы браузеру после взаимодействия с View. Другой источник описывает представление как возврат запросов непосредственно в браузер после получения инструкций от контроллера. Должен ли я понимать, что Контроллер находится между браузером и представлением, или представление находится между контроллером и обозревателем?

Ответы [ 3 ]

3 голосов
/ 31 августа 2011

Я думаю, что обе интерпретации являются частично правильными и частично неправильными, поскольку оба они являются грубыми упрощениями.

Когда запрос передается контроллеру, он выполняет метод, который соответствует запрашиваемому действию.Одна из функций этого метода - визуализация представления - это то, что делает вызов render.Если вы явно не вызываете render, он вызывается для вас с параметрами по умолчанию.Ни один из них действительно не находится «между» другим и браузером, но контроллер способен самостоятельно отвечать на запросы, а представление - нет.

1 голос
/ 31 августа 2011

Я не эксперт по RoR.Но с технической и архитектурной точек зрения мы должны рассматривать представление во всех стандартных инфраструктурах MVC как пассивное .Это означает, что он никогда ничего не «делает» - представление работает так же, как некоторый шаблон пользовательского интерфейса, описывающий, как должен отображаться экран (или страница).

Таким образом, в итоге это будет контроллервизуализировать HTML-страницу на основе на основе определения представления и передать ее конечному пользователю.

1 голос
/ 31 августа 2011

Контроллер возвращает запрос, используя представление.Можно ответить на запрос без представления (путем перенаправления, рендеринга ничего, статической строки, JSON или XML - хотя можно утверждать, что последние три являются логикой представления внутри контроллера), но не для ответа на запросбез контроллера.

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