论坛首页 入门技术论坛

Getting Start with Rails [2]

浏览 1339 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-03-16   最后修改:2009-03-17
2.1 MVC架构
Rails按照模型、视图、控制器(即MVC)的架构组织。MVC的优点包括
  • 商业逻辑和用户界面相分离
  • 容易保持代码的DRY风格
  • 不同功能的代码分开,更清晰,更容易维护

2.1.1 模型

模型展示应用系统的数据,同时操纵这些数据的规则。也可以说,模型主要是用来管理和相关数据库表的交互规则。在多数情况下,数据库中的一个表关联到应用中的一个模型。应用中的商业逻辑大部分集中在模型中。

2.1.2 视图

视图展示应用系统的用户界面。在Rails中,视图通常是嵌入了Ruby代码的HTML文件,这些Ruby代码执行页面相关的数据显示任务。视图将数据提交给浏览器,或者其他发出请求的应用系统。

2.1.3 控制器

控制器将模型和视图胶合在一起,在Rails中,控制器响应来自web浏览器的请求,询问模型得到数据,然后将数据传递给试图。

2.2 Rails的部件

Rails提供完整的建立Web应用的部件,包括
  • Action Controller
  • Action View
  • Active Record
  • Action Mailer
  • Active Resource
  • Railties
  • Active Support

2.1.1 Action Conroller

Action Controller是Rails应用中管理控制器的组件。Action Controller处理Rails的输入请求,抽取出参数分发给相应的处理功能(Action)。Action Controller提供的服务包括会话管理,模板渲染和重定向管理。

2.2.2 Action View

Action View管理Rails的视图,默认提供HTML和XML两种格式的输出。Action view管理模板渲染,包括嵌套模板和子模板,同时也包括内置的AJAX支持。

2.2.3 Active Record

Active Record是Rails的模型基础。Active Record被设计成数据库无关,它基于CRUD功能,具备先进的查找能力,和模型关联的描述能力。

2.2.4 Action Mailer

Action mailer是提供e-mail服务的构件,你可以使用Action Mailers来发送邮件,这些邮件可以使用灵活的模板,或者接收和处理外来的邮件。

2.2.5 Active Resource

Active Resources是业务对象和REST风格Web服务的桥梁。它实现REST风格的Web资源和本地对象CRUD的映射。

2.2.6 Railties

Railties是Rails的核心代码,它用于生成新的Rails应用,并且将不同的构件牢牢的胶合在Rails应用中。

2.2.7 Active Support

Active Support提供大量的应用类扩展和标准Ruby库的扩充。这些代码用于Rails中,包括Rails内核和你的应用软件。

2.3 REST

Roy Fielding的博士学位论文《架构风格与基于网络的软件架构设计》通常被看做是REST架构的基石。幸运的是,你不必阅读整个论文来弄懂REST(表述性状态转移)怎样运作,其主要原理可以归纳如下:

  • 使用资源的标识符来标识资源(你可以简单的认为就是URL)
  • 在系统组件之间转移资源的状态表述。


例如,对于一个类似这样的Rails请求

DELETE /photos/17


将会被理解为对一个ID为17的图片资源执行一个删除请求。REST是一种自然风格的Web应用架构,Rails将这种风格发扬广大,它通过约定来防止某些REST的复杂性和浏览器怪癖。

如果你想了解REST作为架构风格的更多细节,以下资源比Fielding的论文更加通俗易懂:
  • A Brief Introduction to REST by Stefan Tilkov
  • An Introduction to REST (video tutorial) by Joe Gregorio
  • Representational State Transfer article in Wikipedia
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics