Ruby on Rails 2.1 - 框架

框架是一个程序、一组程序和/或代码库,它为您编写大多数应用程序。当您使用框架时,您的工作是编写应用程序的各个部分,使其执行您想要的特定操作。

当您着手编写 Rails 应用程序时,除了配置和其他日常工作之外,您必须执行三个主要任务 −

  • 描述和建模应用程序的域 − 域是您的应用程序的宇宙。域可能是音乐商店、大学、约会服务、地址簿或硬件清单。因此,您必须弄清楚其中有什么,这个宇宙中存在哪些实体,以及其中的项目如何相互关联。这相当于对数据库结构进行建模以保存实体及其关系。

  • 指定此域中可能发生的情况 − 域模型是静态的。您必须使其动态化。地址可以添加到地址簿中。乐谱可以从音乐商店购买。用户可以登录约会服务。学生可以在大学注册课程。您需要确定域元素可以参与的所有可能的场景或操作。

  • 选择并设计域的公开视图 − 此时,您可以开始以 Web 浏览器的术语思考。一旦你决定了你的领域有学生,他们可以注册课程,你可以设想一个欢迎页面、注册页面或确认页面等。这些页面或视图中的每一个都向用户展示了某一时刻的情况。

基于上述三个任务,Ruby on Rails 处理模型/视图/控制器 (MVC) 框架。

Ruby on Rails MVC 框架

Model View Controller 原则将应用程序的工作分为三个独立但紧密合作的子系统。

模型 (ActiveRecord)

维护对象和数据库之间的关系并处理验证、关联、事务等。

此子系统在 ActiveRecord 库中实现,它提供了关系数据库中的表与操作数据库记录的 Ruby 程序代码之间的接口和绑定。

Ruby 方法名称是从数据库表的字段名称自动生成的。

Active Record 还提供了基于动态属性的查找器和许多其他辅助方法,使数据库交互变得简单而高效。

视图 (ActionView)

它以特定格式呈现数据,由控制器决定呈现数据时触发。它们是基于脚本的模板系统,如 JSP、ASP、PHP,并且非常容易与 AJAX 技术集成。

该子系统在 ActionView 库中实现,这是一个基于嵌入式 Ruby (ERb) 的系统,用于定义数据呈现的呈现模板。每次与 Rails 应用程序建立 Web 连接都会显示一个视图。

ActionView 有助于将演示细节与应用程序的核心业务逻辑分离开来。

控制器 (ActionController)

应用程序内引导流量的工具,一方面查询模型中的特定数据,另一方面将数据组织(搜索、排序、处理)为符合给定视图需求的形式。

此子系统在 ActionController 中实现,它是位于 ActiveRecord(数据库接口)和 ActionView(演示引擎)之间的数据代理。

MVC 框架的表示

此处给出了 Ruby on Rails 框架的图形表示 −

Rails Framework

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
uby\gems\1.8\gems
C:
uby\lib
uby\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 将它们全部联系在一起。