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
分享到:
- 2009-03-16 22:46
- 浏览 795
- 评论(0)
- 论坛回复 / 浏览 (0 / 1342)
- 查看更多
相关推荐
We still start with a step-by-step walkthrough of building a real application, and in-depth chapters look at the built-in Rails features. This edition now gives new Ruby and Rails users more ...
《Agile Web Development with Rails》是一本经典的Rails开发指南,中文版的出版使得更多的中国开发者能够深入理解并应用敏捷开发方法与Ruby on Rails框架。这本书是Rails开发者的必备参考资料,它详细介绍了如何...
《Agile Web Development with Rails》(敏捷Web开发:Ruby on Rails)这本书,作为Rails开发新手的教材,强调了敏捷开发方法,并以其帮助开发者建立起一个实用的Web应用。从给出的文件信息来看,这本书正在编写过程...
《敏捷Web开发与Rails》是一本深度探讨如何利用Ruby on Rails框架进行敏捷Web开发的指导书籍,由Dave Thomas、David Heinemeier Hansson等多位在Rails社区有着深厚贡献的作者共同编写。本书不仅覆盖了Rails的基本...
agile web development with rails 5(英文电子书).............................................................................................................................................................
本书《敏捷Web开发与Rails》第三版是基于Rails 2编写的。截至本书印刷时,当前可用的Rails Gem版本为2.1。书中所包含的所有代码均已在该版本上进行了测试。 在本书撰写初期,其内容与第二版相同,后者涵盖了Rails ...
Agile Web Development with Rails 1-14节_ppt(老师发的修正版)
2. **ActionController**: 在这一版中,ActionController也有所改进,增加了更多的过滤器和助手方法,使得控制器更易于管理和测试。同时,对于JSON和XML响应的支持也得到了增强,为API开发提供了便利。 3. **...
《敏捷Web开发与Rails2》是一本专注于使用Ruby on Rails框架进行高效Web应用开发的书籍。Rails是基于Ruby语言的开源框架,它以其简洁、高效的特性在开发社区中备受推崇。该压缩包文件包含了该书的源代码示例,帮助...
《敏捷Web开发与Rails》第四版是一本专为软件开发者设计的权威指南,全面涵盖了使用Ruby on Rails框架进行敏捷Web应用开发的知识。Rails 3是该版本的重点,它引入了许多新特性和改进,使得开发过程更为高效且灵活。...
2. **下载并解压Rails代码**:将从官方提供的链接(http://media.pragprog.com/titles/rails2/code/rails.zip)下载的Rails框架代码包放入应用的`vendor`目录下,并解压缩,这将生成一个名为`rails`的新目录。...
2. **下载并解压代码**:访问指定链接(http://media.pragprog.com/titles/rails2/code/rails.zip),将该压缩包下载到您应用的`vendor`目录下,并解压它。解压后应会生成一个新的名为`rails`的目录。 3. **更新...
### Agile Web Development with Rails for Rails 3.2 #### 核心知识点概览 - **Rails 3.2概述** - **敏捷开发方法论** - **Model-View-Controller (MVC) 模式** - **Ruby on Rails基础与高级特性** - **面向对象...
《敏捷Web开发与Rails》第二版是一本专为Ruby on Rails框架设计的详细教程,旨在帮助开发者以敏捷的方式构建高效、可扩展的Web应用程序。这本书深入浅出地讲解了使用Ruby语言和Rails框架进行Web开发的核心概念和技术...
Agile Web Development with Rails, 2nd Edition <br>有两份PDF文件,大小分别是7.39MB和6.55MB <br>作者: Dave Thomas , David Heinemeier Hansson , Leon Breedt , Mike Clark , James Duncan Davidson ,...