Rails 上的 HR 模式

发表于:2007-06-22来源:作者:点击数: 标签:
下一页 1 2 2006 年 6 月发表 Oracle 数据库有着辉煌的历史和光明未来。它拥有最新的创新特性以及超前很多现代技术的历史。应用程序不断更替,但是组织的数据一直保留在已通过各种版本迁移的 Oracle 数据库中。由于现在存在大量的旧模式,这已经带来了技术上

下一页 1 2 

   

2006 年 6 月发表

   Oracle 数据库有着辉煌的历史和光明未来。它拥有最新的创新特性以及超前很多现代技术的历史。应用程序不断更替,但是组织的数据一直保留在已通过各种版本迁移的 Oracle 数据库中。由于现在存在大量的旧模式,这已经带来了技术上的挑战。许多组织面临着如何使其客户群更广泛地利用这些数据的挑战。

    Ruby on Rails(或者简称“Rails”)是一个令人振奋的新框架,开发人员、DBA 和系统管理员可以使用该框架快速开发 Web 应用程序。该框架是开发源代码的,很快获得了广泛的认同。使用该框架,您可以比使用其他框架更快速地构建和开发与数据库集成的 Web 应用程序。

   现在提供的大多数 Rails 示例和教程都包括创建一个带表和列的新数据库,这些表和列遵守该框架要求的结构和命名惯例。这些教程还假设一个相当简单的对象关系映射 — 使用旧模式时该映射不适用。但是,该框架和 Oracle 数据库都提供一些特性,这些特性可用于创建与旧模式集成的 Web 应用程序。

   本文说明创建 Oracle 演示模式 HR 的 Web 前端的技巧。本文供下载的代码包括一个完整的 Ruby on Rails Web 应用程序,该应用程序在 HR 模式上开发,该模式在 Oracle Database 10g 快捷版 (XE) 上运行。

   下载的应用程序可在 Windows 或 Linux 上运行。Linux 用户在执行本文说明的命令时应将所有反斜线转换为正斜线。

为什么使用 Ruby on Rails?

   可用于 Web 开发的平台有很多,包括 Microsoft .Net、Java 2 企业版和 PHP。此外,大家广泛认为 Oracle 数据库 10g 的特性(也可以单独提供)Oracle Application Express(以前的 HTML DB)是快速开发与 Oracle 数据库集成的 Web 应用程序的理想平台。那么为什么还对一个使用相对不熟悉的语言的新平台这么感兴趣呢?

   依设计,Rails 可以进行极快的 Web 应用程序开发。Rails 是通过遵守惯例而不是强制开发人员预先做出所有配置决定来做到这一点的。安装了 Ruby 和各种所需的程序包之后,您只需运行不到六个命令和编辑一个文件 (database.yml) 就可以创建一个最小的 Web 应用程序。附带的代码生成器或代码库可应对 Web 开发中很多最常见的任务。Ruby 语言具有 Java 等语言的以对象为导向的功能,但是还可以用于创建简单的脚本。该语言的功能范围使您无需借助各种不同技术来完成手边的任务就可以创建应用程序。

   Rails 因其加速了应用程序的开发而几乎誉满天下。之所以取得这样的成功,是因为遵守了编码标准和命名惯例。除了 Rails 框架要求之外,这些标准和惯例通常也是很好的编码做法。

传统模式与 Oracle 和 Rails 集成的有关惯例包括:
  • 使用表所代表的模型的复数形式命名表。例如,“employee”模型映射到“employees”表。
  • 包含将更新数据的所有表都包含一个称为“id”的主键。
  • 如果是 Oracle 数据库,该主键使用一个序列递增,序列名称基于主键递增的表的名称。名为“employees”、包含“id”的表将按名为“employee_seq”的序列递增。

    继续创建在旧模式下运行的 Rails 应用程序的方法有很多。一些技巧涉及使用 Rails 特性,还有一些技巧涉及修改底层数据库对象。演示 Web 应用程序并不尝试说明继续进行的每个可能方法,而是尝试利用以这样的方式利用 Oracle 和 Rails 的强大功能,提供一个清晰、开发速度快、容易维护的合理解决方案

   Rails 社区将 Ruby on Rails 框架的特征归结为“教条化”。这可以看作是肯定性的描述,表明该软件的设计加强了对标准和惯例的遵守。但是,这样的目标也引出了这样的担忧 — 该框架将限制或约束应用程序开发。我们的应用程序包括实现表明框架灵活性的一些要求。

   Ruby on Rails 框架提供在新的或旧的数据库模式上快速构建 Web 应用程序所需的工具。看一下 rake(一个 Ruby 构建实用程序)的输出,这可以让您感受一下创建该项目所付出的努力:

C:\hr_rails\hr>rake stats
(in E:/ruby_apps/hr_rails/hr)
+----------------------+-------+-------+---------+---------+-----+-------+
| Name                 | Lines |   LOC | Classes | Methods | M/C | LOC/M |
+----------------------+-------+-------+---------+---------+-----+-------+
| Helpers              |    15 |    14 |       0 |       0 |   0 |     0 |
| Controllers          |   243 |   193 |       7 |      35 |   5 |     3 |
| Components           |     0 |     0 |       0 |       0 |   0 |     0 |
|   Functional tests   |   440 |   315 |      10 |      50 |   5 |     4 |
| Models               |   177 |   149 |       6 |       5 |   0 |    27 |
|   Unit tests         |    50 |    35 |       5 |       5 |   1 |     5 |
| Libraries            |     0 |     0 |       0 |       0 |   0 |     0 |
+----------------------+-------+-------+---------+---------+-----+-------+
| Total                |   925 |   706 |      28 |      95 |   3 |     5 |
+----------------------+-------+-------+---------+---------+-----+-------+
Code LOC:356     Test LOC:350     Code to Test Ratio: 1:1.0

开发该应用程序需要的类不到 30 个,代码不到 400 行!

安装和运行 Web 应用程序

    安装 Oracle 数据库 XE、Ruby、Rails 和 OCI8 程序包是安装该应用程序的前提条件。由于介绍每个过程将需要一系列文章,因此我仅向您提供安装资源参考:

  • 安装 Oracle 数据库特别版
  • 安装 Ruby 和 Rails
  • 安装 OCI8(“PHP OCI8 扩展”部分)
   安装这些程序后,下载并解压缩 hr_rails.zip 文件,该文件包含与本文相关的所有代码资源。解压缩的文件具有向右显示的以下目录结构(图 1)。
Rails 上的 HR 模式(图一)

图 1:目录结构

    该目录结构没有什么特别的,它是所有 Rails 应用程序的标准结构。应用程序的名称(本示例为 hr)显示为根目录。app 目录中的 models、views 和 controllers 目录包含大量的应用程序代码。config 目录包含 database.yml 文件(用于配置数据库连接)和 routes.rb 文件(用于定义充当应用程序索引的页面)。public 文件夹包含保存 Web 资源的目录,包括脚本、图像和样式表。尽管本文没有讨论,但 test 目录包含与对应用程序进行单元测试相关的资源。

安装了软件、创建了模式并配置了 Rails 应用程序后,就可以运行该应用程序了。从 hr 目录,运行:

ruby script\server
    该命令启动 WEBBrick(随安装程序附带的 Ruby Web 服务器)。在 Web 浏览器中,输入将在端口 3000 运行的 Web 应用程序的 URL,例如 http://localhost:3000。

下面列出了在应用程序中显示的页面的示例:

Rails 上的 HR 模式(图二)

图 2:主页

 

Rails 上的 HR 模式(图三)

图 3:地区赔偿报告

 

Rails 上的 HR 模式(图四)

图 4:员工列表

 

Rails 上的 HR 模式(图五)
图 5:员工编辑


接下来,我们来看看应用程序的数据库和模式配置。

原文转自:http://www.ltesting.net