мвк архитектура рубин на рельсах - PullRequest
1 голос
/ 13 марта 2012

В Ruby on Rails архитектура MVC спроектирована таким образом, что контроллер получит запрос и свяжется с моделью для получения данных, и снова контроллер свяжется для просмотра для генерации html.Теперь я сомневаюсь, почему модель должна отвечать на контроллер, а затем контроллер для просмотра, а не модель, напрямую отвечающая на просмотр для генерации HTML.Почему это не было разработано таким образом?

Может кто-нибудь уточнить?Заранее спасибо.

1 Ответ

7 голосов
/ 13 марта 2012

... модель напрямую отвечает на просмотр для генерации html ...

А что если завтра вам понадобится сгенерировать JSON?А потом XML?И еще 10 форматов?Будете ли вы обновлять модель каждый раз?

Модель, представление и контроллер имеют разные обязанности.

  • Модель - бизнес-логика.Сохраняет и загружает данные.
  • Просмотр - отображает данные в определенном формате.
  • Контроллер - посредник между ними.Анализирует запросы, выполняет аутентификацию / авторизацию, запрашивает модель для данных, вызывает соответствующие представления с этими данными.

Не должно быть бизнес-логики в представлениях, рендеринге в моделях и т. Д. Это помогает лучше, чищеcode.

В моем гипотетическом примере вам просто нужно добавить представление, которое может отображать данные в формате JSON.И, возможно, добавить одну или две строки в контроллер (часто вам не нужно).Модель оставлена ​​без изменений.Его заботой является постоянство данных, а не представление данных.

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