第 3 步:创建 Web 应用程序
要创建新 Rails 应用程序,您需要按照如下所示创建一个新 Rails 项目。
使用 rails 命令行应用程序创建一个新项目(这将自动创建一个新目录)。
C:\> rails comics_catalog "Cd oracle
转至在前面步骤中创建的新项目目录。
C:\> cd comics_catalog C:\comics_catalog>
既然您已创建一个新的 Rails 项目目录,现在您将需要配置您的项目以便 Rails 应用程序将使用 Rails-Oracle 连接库。
在您的项目目录中,有一个名为 config 的目录,其中有一个名为 database.yml 的文件。您需要使用您最喜爱的文本编辑器编辑 database.yml。最初,该文件将如下所示:
development: # Warning:The database defined as "test" will be erased and production: |
不同的数据库需要不同的连接属性Rails 默认设置为使用 MySQL,但是您希望重新配置该项目以使用 Oracle。按照该 Oracle on Rails wiki 页面上的说明更改开发属性。(您可能还更改测试和生产属性,但是本文不讨论测试或生产版本。)当在远程设备上使用 Oracle 数据库时,文件将如下所示:
development: |
在 Rails 中创建 Web 应用程序有很多种方法,但是目前最简单的方法是使用 scaffold,这是一个可以在 Rails 中使用单一命令构建整个应用程序的命令行特性。
C:\comics_catalog> ruby script/generate scaffold comic title:string issue:integer publisher:string
这里的“title:string”代表 Rails 中类型为“string”的表列,与 Oracle 中的“varchar2”类型相对应。
没有命令窗口中的一系列输出,那么刚才发生了什么?Rails 代码生成器创建了模型、视图和控制器 Ruby 代码以访问 COMICS 表。在本示例中,您创建应用程序所使用的 Rails scaffold 已经为您做了所有的工作。
如果您对数据库表做出任何改动,您将需要再次运行 scaffold 命令。否则,您的应用程序可能不会工作。
您还没有创建任何数据库表。Rails 可以帮助您轻松完成,执行下列命令即可创建“comics”表:
C:\comics_catalog> rake db:migrate
既然 Web 应用程序已经生成,现在您可以启动 Ruby Web 服务器 WEBRick。
C:\comics_catalog> ruby script/server
您可以随时更改您应用程序的 Ruby 代码,无需重新启动 web 服务器。然而,如果您更改数据库配置文件(例如 database.yml),您将需要重新启动服务器。
现在,您可以在您自己的开发设备上使用您最喜爱的 Web 浏览器访问您的 Rails Comic Catalog 应用程序了。只需访问以下 URL。
您的浏览器将如图 1 所示一样显示您的 Catalog 中的漫画书列表。

图 1:产品目录列表
当您使用 scaffold 创建 Rails Web 应用程序时,它将自动创建三个 Web 组件,从而使您能够看到目标数据库表中所有记录的列表,并对表中的记录进行插入、修改和删除的操作。图 1 显示了示例数据列表。
除了 Listing 视图,还有详细信息视图。只需单击任意“Show”链接即可查看专门显示该特定记录中数据的 Web 页面。图 2 是该详细信息页面的示例。

图 2: 详细信息页面
您还可以在数据库表中编辑任何记录。单击“Back”链接,或使用您的浏览器“返回”按钮返回到 Listing 页面,然后单击任意记录的“Edit”链接。图 3 展示了 COMICS 数据库表中的一个记录的 Editing 视图示例。

图 3: Editing 视图
您也可以通过返回 Listing 视图并单击“New Comic”链接来向 COMICS 表中添加新记录。您所见的视图将与图 3 中所示相似,只是域中都将为空白。
精通 Rails
虽然产品目录示例展示了使用 Rails 创建一个简单应用程序是多么容易,但它在跟踪库存以外的其他方面并不是如此有效。您可以使用 Rails 创建更为复杂的 Web 应用程序,但是那将需要您进行编码操作,并且需要学习。Rails 是一个易于使用的框架,但它和其他技术一样,需要花费一定时间方可掌握。
要真正精通 Rails,您应该阅读一本书,也许今年晚些时候会有很多相关书籍,但是现有的非常好的一本是 David Heninmier Hanson 和 Dave Thomas 所著的《Agile Web Programming with Ruby on Rails》(Pragmatic Bookshelf 2005 年出版)。Hanson 是 Rails 的创始人,而 Thomas 是《Programming Ruby: The Pragmatic Programmers' Guide》(Pragmatic Bookshelf;第二版,2004 年)的作者之一。
另请参见:Rails 上的 HR 模式,了解创建可利用旧模式的 Ruby on Rails Web 应用程序的技巧。
另请参见:结合使用 Oracle 和 Ruby on Rails,学习如何使用 Oracle 安装 Ruby/Rails,以及如何开发高效且功能强大的 Ruby/Rails 应用程序。