mvc架构ruby在轨道上

jop*_*ine 1 architecture model-view-controller ruby-on-rails

在Ruby on Rails中,MVC架构的设计方式是,控制器将接收请求并与模型交谈以接收数据,并且控制器将再次与视图对话以生成html.现在我的疑问是,为什么模型应该回复控制器然后控制器来查看,而不是模型直接回复视图来生成html.为什么它不是那样设计的?

有人可以澄清一下吗?提前致谢.

Ser*_*sev 7

...模型直接回复查看生成HTML ...

如果明天你需要生成JSON怎么办?那么XML呢?和其他10种格式?你会每次都更新模型吗?

模型,视图和控制器具有不同的职责.

  • 模型 - 业务逻辑.保存并加载数据.
  • 视图 - 以特定格式呈现数据.
  • 控制器 - 两者之间的中介.解析请求,进行身份验证/授权,询问数据模型,使用该数据调用适当的视图.

视图中应该没有业务逻辑,在模型中呈现等等.这有助于更好,更清晰的代码.

在我的假设示例中,您只需添加一个可以呈现数据的JSON表示的视图.并且,可能会向控制器添加一行或两行(通常您不必这样做).模型保持不变.它的关注点是数据持久性,而不是数据表示.