随着 Rails 0.10.0 的发布,我们正以闪电般的速度推进路线图。这次发布包含了很多很棒的功能,以至于很难只挑选几个重点进行概述,但我还是做到了。通过 Rails 0.10.0,您将获得:
- 路由:现在可以使用易于理解的 Ruby 编写的路由语法来指定各种风格的漂亮 URL。这意味着不再需要与 Apache 的 mod_rewrite 纠缠来获取自定义 URL 方案。这意味着您不受限于传统的 /controller/action/id 格式(控制器和操作名称甚至不必成为 URL 的一部分!)。这也意味着 URL 解析和生成由相同的配置处理,这消除了以前将 Ruby 代码与重写规则同步所需的所有劳动。这使得在 Rails 支持的所有 Web 服务器之间共享相同的 URL 配置成为可能。您可以在 WEBrick 上无缝开发您的应用程序,而无需更改即可将其迁移到 Apache 或 lighttpd。请阅读 路由手册,查看 已解释的路由示例,或深入研究 ActionController::Base#url_for API 文档。
- 组件:通过组件,可以在执行另一个操作的同时调用其他操作和控制器来获取其渲染的响应。您可以委托整个响应渲染,也可以将部分响应与其他内容混合。这使得可以将功能打包成可重用部分,并使应用程序元素(如仪表板)更 DRY(保持不重复)。要了解有关组件的更多信息,我们有 另一本手册,一个 展示如何创建和调用组件的视频,以及 API 文档。
- Oracle:除了现有的 MySQL、PostgreSQL、SQLite、SQL Server 和 DB2 适配器之外,我们现在还支持 Oracle 作为 Active Record 的数据库选项。集成进来的适配器建立在 OCI8 之上,并已确认在 Oracle 8i 和 9i 上运行良好。我们的第六个数据库适配器 在 API 中有所记录。
但 0.10.0 版本还有大量其他新增和修复的功能。查看全新的 Active Support 包,并查看 Rails、Active Record、Action Pack 和 Action Mailer 的 更改日志。
纪念 Nicholas Seckar 和 Leon Breedt
本次发布最重要的两个功能是由两位相对 Rails 新人贡献的。Nicholas Seckar 在路由方面尝试了至少三次,才找到了最适合 Rails 的方案。他付出了巨大的精力来解决所有的复杂问题,并在此后帮助改进了 Rails 的所有部分。Nicholas,你做得非常出色。愿潜在的雇主都能看到你的名字。
同样感谢 Leon Breedt,他突然出现了一个全新的框架,遵循了我们既定的约定和方法。代码和文档的质量给核心贡献者团队留下了深刻的印象。这项工作也让我们离 1.0 更近了一步。感谢 Leon 的出色工作!
那么,Rails 1.0 还有多远?
今天,随着我们完成了之前宣布的 路线图 的一半以上,Rails 1.0 的目标又近了一步。我们目前主要缺乏的是打包和性能,同时我们的目标是将未调查和/或已修复的 故障工单 数量降至零。目前的暂定日期是三月底/四月初。
从 Rails 0.9.5 升级到 0.10.0
如果您现有的应用程序中没有定义任何自定义 URL,那么升级过程相当直接。如果您确实有自定义 URL,则需要做更多的工作,但绝对是可管理的。Basecamp 使用了大量的自定义 URL 技巧,我花不到一个小时就完成了,并且删除了应用程序中的 100 行代码。无论如何,我们已经创建了一本 指导升级过程的书籍。