Ruby on Rails之Oracle应用(1)

发表于:2007-06-11来源:作者:点击数: 标签:
Rails 是一个易用的框架,但像任何技术一样,要精通它还需一定的时间。您可能对 Ruby on Rails 已有所耳闻,这一新应用框架正以狂风暴雨之势席卷 Web 开发 社区,尤其是 J2EE 和 PHP 编程界。 Rails 是一个功能强大的 Web 应用平台,在不到两年的时间内便赢

Rails 是一个易用的框架,但像任何技术一样,要精通它还需一定的时间。您可能对 Ruby on Rails 已有所耳闻,这一新应用框架正以狂风暴雨之势席卷 Web 开发社区,尤其是 J2EE 和 PHP 编程界。

Rails 是一个功能强大的 Web 应用平台,在不到两年的时间内便赢得了众多 J2EE 和 PHP 编程人员的广泛青睐。它为什么会得到 J2EE 和 PHP 编程人员的垂青?了解 Rails 的优势后您的疑问将一扫而空。其一是它使用了严格的 model-view-controller (模式—视图—控制器)体系结构,赢得了自尊且醉心于设计模式的“妄客”(自我的技术迷)的尊敬 — 这是 J2EE 开发人员对其情有独钟的原因。其二是使用 Rails 可以非常方便地构建基础系统 — 这是它吸引 PHP 开发人员的原因。

但是,从数据库角度来看,Rails 有一些非常明显的缺陷。Rails 对数据库布局和应用程序需求作了许多假定。比如,Rails 假定所有表都使用一个非复合的主键。它不支持复合主键!另外,Rails 不支持双步提交;它只能用于单个数据库后端的情况。

本文不是 Rails 的吹捧文章或是批判文章,仅是对这一技术的一个介绍。其中既有褒奖也有批评。可能有时批判显得有点严厉(在 Rails 狂热爱好者眼中尤其如此),但是不要为表象所迷惑。使用任何 Web 应用框架都要讲究技巧,不管它是 J2EE、ASP.NET、或 PHP。从长远来看,使用 Rails 比使用其它 Web 应用开发平台的效率更高,但是需要一定的时间来熟悉和掌握该技术。

什么是 Ruby?什么是 Rails?

Ruby 是一种动态编程语言,它在许多方面类似于 Perl、Python 和 Smalltalk,但是它是自成体系的。Java 和 PHP 编程人员似乎可以很轻松的掌握这一语言,他们是 Ruby 的最大拥护者。这一语言还吸引着其他人的加入,包括 Don Box 这位 Microsoft 界的超级“妄客”。

Ruby 的历史不短,它问世于 1993 年,先于在 1995 年便为公众知晓的 Java 和 PHP。所以尽管 Ruby 是一个成熟的语言,却不如其它语言普及。这造成了 Ruby 编程语言阵营并不如 Java、PHP 和 Perl 阵营强大。因此,您会发现专门针对这一语言的框架、库、书籍、网站、博客和其它资源都比较少。

在 David Heinemeier Hanson 于近期推出了 Rails 框架后,Ruby 社区推广能力不济的颓势得到了扭转,有证据表明该框架是 Ruby 诞生以来最受欢迎的应用程序。Rails 将 Ruby 编程语言扩展为极其适用于 Web 开发的领域特定语言(Domain Specific Language)。它还借用了 ActiveRecord 扩展,将对象关系持久性引入了 Ruby 语言。Rails 让人敬而远之的原因除了它不支持复合主键和两步提交外,其最大的障碍在于要使用它您需要重新学习一门编程语言。这不是大部分人可以不求甚解一略而过的阶段,学习一门新语言虽然可以为您带来欢乐,但同时却是一条令人生畏的坎坷之途。

但是,如果您想在自己的履历中添上浓墨重彩的一笔,Ruby 语言便是不二之选。梅花香自苦寒来,Ruby 是一个完全不受商业利益左右,历经 10 年锤炼而成的语言。所以,使用 Ruby 能给您带来愉悦的享受,在很多情况下,其生产率比 Java、C 和 Microsoft .NET 语言高出一个数量级。(IronPython 可能是个例外,它是 Python 语言与 Microsoft .NET 环境的接口。Python 类似于 Ruby,也是一个生产率很高的动态编程语言。)

Rails 的用途是什么?

Rails 是一个从零开始设计而成的框架,用于构建使用关系数据库后端的动态网站。它将关键词引入了 Ruby 编程语言,简化了 Web 应用程序的配置。此外,它还可以基于现有的数据库模式自动生产完整的 Web 应用程序,尽管有点粗糙。这一能力既是 Ruby 的突出优点,却同时也是它的致命弱点。Rails 假定了数据库模式命名规范,如果遵循这一规范,只需执行一个命令即可生成一个基本 Web 站点。但要完成这一工作需要进行一些额外配置,有时这些配置可能根本无法实现。您还会发现 Rail 假定的数据库规范几乎都是可更改的,但是更改得越多,该平台的生产率就越低。这就是 Rails 在开发新数据库的新应用程序时能大显神通的原因。但它却不是处理原有系统的一个上佳方案。

示例是了解使用 Rails 开发新应用程序的最好方式。如果您安装有 Oracle 数据库,且能够基于这一数据库创建新数据库和新表,那么创建一个完整的 Web 应用程序的用时将不超过 15 分钟。在本示例中,我们将使用 Ruby on Rails 来构建一个产品目录。

示例:简单的产品目录

我从去年开始投资高档漫画书,特别是 1946 年以来的旧版漫画书。我创建了一个简单的 Ruby on Rails 数据库应用程序,利用它我在买卖活动中就可来方便地插入、移除、更改和删除书籍。因为是供我个人使用,所以程序自然是能减则减。本文中要构建的应用程序是我所使用的 Ruby on Rails 应用程序的“廋身”版。

尽管 Rails 和 Oracle 数据库可用于很多平台上,但本文采用了 Windows XP,有证据表明它是 Oracle 应用程序开发人员最常用的平台之一。本示例非常简单,其实就是 “Hello World” 编程语言示例的数据库版,目的是让您初尝 Ruby,但它并没有展示 Rails 的所有能力,就像任何编程语言的“Hello World”示例都没有淋漓尽致地展示该语言的所有能力一样。

如果您在运行这一示例的过程中出现了问题,原因可能有以下三种:下载的代码不对;数据库设置不当,不能连到该示例应用程序;或者是您的 Windows XP 操作系统出现了问题。在开发本示例的过程中,我碰到了一些涉及版本和数据库配置的问题 — 所有这些都是由缺乏知识而造成的。我从我的朋友 Michael Carland 那里学到了许多知识,这样才得以顺利完成这一示例,并使之尽量简单。

实际情况是,实现 Ruby on Rails 和 Oracle 的协同工作并不是一件简单的事情。有时会让人倍感灰心。如完全按本文中的说明,您应该不会碰到问题。但是一旦超出本示例的范围,就会出问题。Rails 可以达到很高的生产率,但它是一个命令行开发环境,并不提供高级集成开发环境通常所具有的“自动化”功能。如果您不是“自力更生”型的技术人员,那目前最好不要使用 Rails。

第 1 步:设置 Oracle 数据库

如果您对结合使用 Rails 和 Oracle 不感兴趣的话,您也不会来看这篇文章,所以您需要安装一个 Oracle 数据库实例并向该数据库添加一个表。严格遵循本文中的命名规范非常重要,否则由 Rails 自动生成的代码将无法正常运行(如果不进行调整)。您要创建的表如下所述:

CREATE TABLE comics (

id, NUMBER(10) NOT NULL,

title VARCHAR2(60),

NUMBER(4),

publisher VARCHAR2(60),

PRIMARY KEY (id)

);

CREATE SEQUENCE comics_seq;

这里提供了一个 SQL 脚本文件,您可以用它来创建表并添加一些产品数据。我建议您使用它,以便您的应用程序便与这里开发的保持一致。完成这一工作最简单的方法是按照以下步骤使用 SQL*Plus。(假定您已经安装有 Oracle 数据库并知道如何使用它。)

使用 SQL*Plus,创建一个拥有 DBA 权限的用户,用于在这一应用程序中进行操作。

SQL>GRANTdbaTOrubyIDENTIFIEDBYruby; 

SQL>ALTERUSERrubyDEFAULTTABLESPACEusersTEMPORARYTABLESPACEtemp;

SQL>EXIT

使用 SQL 文件,创建应用程序表 COMICS,然后插入一些示例数据。

 C:\>sqlplusruby/ruby@rails@comics.sql 

可能您已经发现本例中创建的 COMICS 是复数形式,这似乎不太正常,因为通常我们都将表命名为单数形式(例如 COMIC)。但是,Rails 采用了复数形式来命名表。通过 Rails 配置可以更改这一默认规范,但使用复数名称更为简便。

第 2 步:安装 Ruby、RubyGems、Rails 和 Rails Oracle 库

要在 Windows XP 上使用 Rails,需要两个软件:带 RubyGems 的 Ruby 编程语言安装包,Rails 1.0 (1.1 版已于不久前推出,但本文只讨论 1.0),和 Rails Oracle 数据库库。要下载和安装带 Gems 的 Ruby 安装程序,请按以下步骤进行。

  • 访问 http://rubyinstaller.rubyforge.org/。
  • 下载“One-Click Ruby Installer”。
  • 按照说明完成安装。

安装完 Ruby 编程平台后,您就可以使用 RubyGems 这一 Ruby 应用工具很方便地安装 Ruby 框架了。要安装 Rails 应用程序开发框架,您只需打开命令行提示符,键入一个命令:

 C:\>gemsinstallrails-v1.0.0--remote 

现在您已经成功安装了 Ruby、RubyGems 和 Rails,接下来可以安装一些专用代码库,以实现 Rails 应用程序和 Oracle 数据库服务器的通信。要下载和安装 Oracle Rails 库,请访问 http://rubyforge.org/projects/ruby-oci8,下载 ruby-oci8-0.1.13-mswin.r 到 C 盘中,然后在命令窗口中执行以下命令:

 C:\>rubyruby-oci8-0.1.13-mswin.rb 

假如一切顺利,到目前为此,您就完成了 Ruby、Rails 和 Rails-Oracle 连接库的安装。下一步就是创建您的第一个 Ruby on Rails Web 应用程序了。


共2页: 1 [2] 下一页

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

...