2005 年 2 月 24 日,星期四

Rails 0.10.0:路由、Web 服务、组件、Oracle

发布者:管理员

得益于 Rails 0.10.0 的发布,我们正以闪电般的速度贯彻路线图。这次这里面包含许多内容,以至于很难只挑选其中的几个方面来进行重点介绍,但我还是挑了一些。借助 Rails 0.10.0,您将获得

  • 路由:现在,所有类型和风格的漂亮 URL 都可以使用简单易懂的 Ruby 路由语法来指定。这意味着再也不需要在 Apache 中使用 mod_rewrite 来获取自定义 URL 方案。这意味着您不再受传统的 /controller/action/id 形式的限制(控制器和操作名称甚至不需要成为 URL 的一部分!)。这也意味着 URL 解析和生成操作由相同的配置处理,这消除了先前涉及使 Ruby 代码与重写规则同步的所有工作。这样一来,便可以在 Rails 支持的所有 Web 服务器上共享相同的 URL 配置。您可以在 WEBrick 上无缝地开发应用程序,并且无需进行更改即可将其移至 Apache 或 lighttpd。在 《路由指南》 中阅读更多内容,查看一堆路由的说明,或深入了解 ActionController::Base#url_for API 文档。
  • Web 服务Action Web Service 是 Action Pack 的一个全新附加框架,使使用 SOAPWSDL 以及 XML-RPC Web 服务变得同使用 Rails 一样轻松。您既可以为此添加 API 来描述现有控制器,还可以让客户端与用于执行 HTTP 界面的相同方法互动,或者创建可以绑定到控制器上的专用服务类。除了支持构建 Web 服务之外,我们还添加了方便的封装,可以让您从自己的应用程序中调用其他 Web 服务。对于入门者,我们提供了 一本关于 Action Web Service 的完整指南,其中解释了如何为 Web 服务 API 定义、实现和进行交互。我们还提供了使用 GoogleSearch APImetaWeblogApi 的示例。
  • 组件:使用组件可以为其他操作和控制器调用其呈现的响应,同时执行其他操作。您可以委派整个响应呈现,或者也可以将部分响应与其他内容混合在一起。这样就可以在可重复使用部分中打包功能,并对从多个源集成(如仪表板)的应用程序元素进行更彻底的 DRY(不重复自己)。要详细了解组件,我们准备了另一本书如何制作和调用组件的视频,以及 API 文档
  • Oracle:除了现有适用于MySQLPostgreSQLSQLiteSQL ServerDB2的适配器之外,我们现在还支持Oracle作为Active Record的数据库选项。内置的适配器构建在OCI8之上,并经确认与Oracle 8i和9i配合良好。我们第六个数据库适配器在API 中有记录

但0.10.0提供了众多新的和已修复的内容。查看其他全新的包Active Support,然后查阅RailsActive RecordAction PackAction Mailer的更改日志。

感谢Nicholas Seckar和Leon Breedt

此版本中的两个最重要功能是一些Rails场景的新人贡献的。在开发出我们认为最适合Rails的版本之前,Nicholas Seckar尝试了至少三次路由。他投入了巨大精力来解决所有复杂问题,此后还帮助改进了Rails的所有部分。你做得非常好,Nicholas。希望寻找人才的潜在雇主会看到你的名字。

同样感谢Leon Breedt,他突然提出一个全新的框架,遵循我们已建立的惯例并采用我们对 dot 的方法。代码和文档的质量给现有的核心贡献者团队留下了深刻的印象。这项工作让我们所有人更接近1.0。Leon,感谢你出色工作!

那么Rails 1.0还有多远?

今天,Rails 1.0更进一步,因为我们已经完成了之前宣布的路线图一半以上。我们现在主要缺少打包和性能,同时目标是将未调查和/或已修复的错误单的数量减少到零。当前的暂定日期是3月底/4月初。

从 Rails 0.9.5 版升级到 0.10.0 版

如果您在现有应用程序中没有定义任何自定义网址,那么升级过程非常简单。如果您有自定义网址,那么工作量会稍大一些,但绝对是可以管理的。Basecamp 使用了大量的自定义URL技巧,我用了不到 1 小时,结果从应用程序中删除了 100 行代码。无论如何,我们已经创建了一本指导升级过程的书籍