- 学习 Ruby on Rails
- Rails 2.1 主页
- Rails 2.1 简介
- Rails 2.1 安装
- Rails 2.1 框架
- Rails 2.1 目录结构
- Rails 2.1 示例
- Rails 2.1 数据库设置
- Rails 2.1 Active Records
- Rails 2.1 迁移
- Rails 2.1 控制器
- Rails 2.1 视图
- Rails 2.1 布局
- Rails 2.1 脚手架
- Rails 2.1 和 AJAX
- Rails 2.1 上传文件
- Rails 2.1 发送邮件
- 高级 Ruby on Rails 2.1
- Rails 2.1 RMagick 指南
- Rails 2.1 基本 HTTP 认证
- Rails 2.1 错误处理
- Rails 2.1 路由系统
- Rails 2.1 单元测试
- 高级 Ruby on Rails 2.1
- Rails 2.1 提示与技巧
- 快速参考指南
- 快速参考指南
- Ruby on Rails 2.1 有用资源
- Ruby on Rails 2.1 - 资源
- Ruby on Rails 2.1 - 讨论
Ruby on Rails 2.1 - 框架
框架是一个程序、一组程序和/或代码库,可以为您编写大部分应用程序。当您使用框架时,您的工作是编写应用程序的那些使其执行您想要执行的特定操作的部分。
当您着手编写 Rails 应用程序时,撇开配置和其他家务琐事,您必须执行三个主要任务:
描述和建模应用程序的领域 - 领域是应用程序的宇宙。该领域可以是音乐商店、大学、约会服务、地址簿或硬件库存。因此,您必须弄清楚其中包含的内容、此宇宙中存在哪些实体以及其中的项目如何相互关联。这相当于建模数据库结构以保留实体及其关系。
指定在此领域中可以发生什么 - 领域模型是静态的。您必须使其动态化。可以将地址添加到地址簿中。可以从音乐商店购买乐谱。用户可以登录约会服务。学生可以在大学注册课程。您需要识别领域元素可以参与的所有可能场景或操作。
选择和设计领域公开可用的视图 - 在这一点上,您可以开始以 Web 浏览器的方式思考。一旦您确定您的领域有学生,并且他们可以注册课程,您就可以设想一个欢迎页面、一个注册页面或一个确认页面等。每个页面或视图都向用户显示事物在特定时间点的状态。
基于以上三个任务,Ruby on Rails 处理 Model/View/Controller (MVC) 框架。
Ruby on Rails MVC 框架
Model View Controller 原则将应用程序的工作划分为三个独立但紧密协作的子系统。
模型 (ActiveRecord)
维护对象和数据库之间的关系,并处理验证、关联、事务等。
此子系统在ActiveRecord库中实现,该库提供了一个接口和绑定,在关系数据库中的表和操作数据库记录的 Ruby 程序代码之间建立了连接。
Ruby 方法名称会根据数据库表的字段名称自动生成。
Active Record 还提供基于属性的动态查找器和许多其他辅助方法,使数据库交互变得简单高效。
视图 (ActionView)
它是以特定格式呈现数据,由控制器决定呈现数据触发。它们是基于脚本的模板系统,例如 JSP、ASP、PHP,并且非常易于与 AJAX 技术集成。
此子系统在ActionView库中实现,这是一个基于嵌入式 Ruby (ERb) 的系统,用于定义数据呈现的呈现模板。每个 Web 连接到 Rails 应用程序都会导致显示一个视图。
ActionView 有助于将呈现的细节与应用程序的核心业务逻辑分开。
控制器 (ActionController)
应用程序中用于引导流量的功能,一方面查询模型以获取特定数据,另一方面将这些数据(搜索、排序、处理)组织成适合给定视图需求的形式。
此子系统在 ActionController 中实现,它是一个数据代理,位于 ActiveRecord(数据库接口)和 ActionView(呈现引擎)之间。
MVC 框架的表示
此处给出了 Ruby on Rails 框架的图形表示:
MVC 框架的目录表示
假设在 Linux 上进行标准的默认安装,您可以像这样找到它们:
tp> cd /usr/local/lib/ruby/gems/1.8/gems tp> ls
您将看到包含(但不限于)以下子目录:
- actionpack-x.y.z
- activerecord-x.y.z
- rails-x.y.z
在 Windows 安装上,您可以像这样找到它们:
C:\>cd ruby\lib\ruby\gems\1.8\gems C:\ruby\lib\ruby\gems\1.8\gems\>dir
您将看到包含(但不限于)以下子目录:
- actionpack-x.y.z
- activerecord-x.y.z
- rails-x.y.z
ActionView 和 ActionController 捆绑在 ActionPack 下。
ActiveRecord 提供了一系列用于操作 SQL 数据库中数据的编程技术和快捷方式。ActionController 和 ActionView 提供了用于操作和显示这些数据的功能。Rails 将它们全部绑定在一起。