什么是Ruby on Rails中的MVC?

Imr*_*ran 22 architecture model-view-controller design-patterns ruby-on-rails

有人可以用Ruby on Rails的方式向我解释MVC.我对理解MVC中的模型特别感兴趣(无法理解模型).

MGr*_*rev 46

一些背景,MVC是一种(复合)设计模式,由Trygve Reenskaug(Smalltalk)于1979年开发.

True MVC主要计划用于n层(非Web)系统,它将系统分为3个不同的部分,模型,视图和控制器

该模型

  • 包含应用程序的数据(通常链接到数据库)
  • 包含应用程序的状态(例如,客户的订单)
  • 包含所有业务逻辑
  • 通知状态变化视图(**不是ROR,见下文)
  • 不了解用户界面,因此可以重复使用

风景

  • 生成向用户显示数据的用户界面
  • 被动,即不做任何处理
  • 一旦将数据显示给用户,就完成了视图工作.
  • 许多视图可以出于不同的原因访问同一模型

控制器

  • 接收来自外部世界的事件(通常通过视图)
  • 与模型交互
  • 显示用户的相应视图

**经典MVC不适合Web应用程序,因为模型无法以观察者方式将所有更改发送到视图(视图是网页).引入Model2是为了在90年代克服JSP团队不断变化的基础架构.MVC Web框架实际上不是MVC,而是Model2(Ruby on Rails也是如此).

以下是GUI模式的描述,包括来自Master,Martin Fowler GUI Architectures的 MVC

到目前为止,我发现的最好的书是带有Rails的敏捷Web开发.它首先假设没有知识,而且非常全面.

希望这有助于为您揭开光芒!


小智 5

在此输入图像描述

MVC 基本上表示模型-视图-控制器。MVC 被许多语言使用,如 PHP、Perl、Python 等。一般 MVC 的工作方式是这样的:

请求首先到达控制器,控制器找到合适的视图并与模型交互,模型与数据库交互并将响应发送到控制器,然后控制器根据响应将输出参数提供给视图。