【问题标题】:mvc architecture ruby on railsmvc 架构 ruby on rails
【发布时间】:2012-03-29 17:26:46
【问题描述】:
在 Ruby on Rails 中,MVC 架构的设计方式是,控制器将接收请求并与模型对话以接收数据,然后控制器将与视图对话以生成 html。现在我的疑惑是,为什么要model回复controller再controller给view,而不是model直接回复view生成html。为什么不是这样设计的?
有人可以澄清一下吗?提前致谢。
【问题讨论】:
标签:
ruby-on-rails
model-view-controller
architecture
【解决方案1】:
...模型直接回复视图生成html...
如果明天你需要生成 JSON 怎么办?然后是 XML?还有其他 10 种格式?你会每次更新模型吗?
模型、视图和控制器具有不同的职责。
- 模型 - 业务逻辑。保存和加载数据。
- 查看 - 以特定格式呈现数据。
- 控制器 - 两者之间的中介。解析请求、进行身份验证/授权、向模型询问数据、使用该数据调用适当的视图。
视图中不应有业务逻辑,模型中不应有渲染等。这有助于更好、更简洁的代码。
在我的假设示例中,您只需要添加一个可以呈现 JSON 数据表示的视图。并且,可能会在控制器中添加一两行(通常您不必这样做)。模型保持不变。它关注的是数据持久性,而不是数据呈现。