Getting Start with Rails [2]

2.1 MVC架构
Rails按照模型、视图、控制器(即MVC)的架构组织。MVC的优点包括
[list]
[*]商业逻辑和用户界面相分离
[*]容易保持代码的DRY风格
[*]不同功能的代码分开,更清晰,更容易维护
[/list]
2.1.1 模型

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

2.1.2 视图

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

2.1.3 控制器

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

2.2 Rails的部件

Rails提供完整的建立Web应用的部件,包括
[list]
[*]Action Controller
[*]Action View
[*]Active Record
[*]Action Mailer
[*]Active Resource
[*]Railties
[*]Active Support
[/list]
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(表述性状态转移)怎样运作,其主要原理可以归纳如下:

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

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

DELETE /photos/17


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

如果你想了解REST作为架构风格的更多细节,以下资源比Fielding的论文更加通俗易懂:
[list]
[*]A Brief Introduction to REST by Stefan Tilkov
[*]An Introduction to REST (video tutorial) by Joe Gregorio
[*]Representational State Transfer article in Wikipedia
[/list]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值