2008 年 6 月 25 日星期三

Rails 本周动态(2008 年 6 月 26 日)

作者:Antonio Cangiano

欢迎阅读 Rails 本周动态,这是 Rails 社区重点信息的周报。

Ruby 漏洞

Jeremy Kemper此前报道 的那样,针对各大 Ruby 发布版发现了严重的漏洞。 官方建议 提出了升级路径,但有数份报告指出在使用打过补丁的 Rails Ruby 1.8.5 和 1.8.6 版本时会发生分段错误。Phusion 团队发布了适用于 Ruby 1.8.6-p111 的 补丁,但目前 Ruby 核心团队尚未收录该补丁。

如果您正在使用 Rails 2.1,Ruby 1.8.7-p22 看起来是最佳选择。遗憾的是,Ruby 1.8.7 与早期版本的 Rails 不兼容。如果您决定该升级您的应用至 Rails 2.1 了,这篇文章 提供了一些实用的提示,而这篇文章 也会警告您一些陷阱。

如果您运行的 Ruby 版本是随 Mac OS X 一同发布的版本,您应该等待 Apple 的下次软件更新。

Ajax

Rails 是一款意见化的软件,但它对插件的支持显然证明了对于非核心问题,它能够接受一定程度的意见分歧。因此,虽然我们大部分人主要使用 Protoype,看到人们采用其他 JavaScript 框架也相当常见,特别是 jQuery。

上周,Jim Neath 发布了一篇很好的概述,该概述比较了 jQuery 与 Prototype,并提供了有关如何通过 jRails 插件在 Rails 中使用 jQuery 的信息。

无论您选择了哪个 Ajax 框架,您可能会对 Google Ajax Library API 感兴趣,它可以提升您的应用程序的性能。借助将 Ruby on Rails 与 Google Ajax Libraries API 搭配使用 教程(即将整合为插件),您现在就可以开始在 Rails 中采用 API

MVC

Rails 2.1 添加了命名范围,大大简化了在 Active Record 模型中编写“查找逻辑”。这是一项非常有用的功能,在这篇恰如其分地被命名为 命名范围真赞 的文章中得到了很好的解释(我们表示同意)。同时检出 Ryan Bates 关于此主题的 railscasts:named_scopeAnonymous Scopes。您对此周有关 在 Rails 2.1 中缓存 的 railscast 也会感兴趣。

三个其他引人注目的 ActiveRecord 相关帖子分别为 Smart Model, Dumb ControllerBulk insertion of data with ActiveRecordTimestamped Migrations,它们介绍了如何让“经典迁移”成为一个可用选项(请参见 工单)。

Michael Bleigh 发布了一篇 教程,通过 SubdomainFu 插件(该插件灵活易用)来处理 Rails 应用程序中的子域。

测试驱动开发等 XP 编程实践在 Rails 社区中非常流行,但依然有很多开发者将测试视为一项苦差事。Josh Nichols 撰写了一篇题为 A walk through of test-driven development with shoulda 的概述,向您展示了在您的 Rails 项目中应用 TDD 有多么容易。在这个具体案例中,他采用了 Shoulda 插件,该插件在 Test::Unit 框架之上无缝地添加了一些断言、帮助器和宏。

文档

api.rubyonrails.org 之外还有 多种 备选方法 可用于快速查看 Rails 的 API 文档。上周又发布了一个新的:rails-doc.org。当前版本的特点是快速搜索和用户注释。特别是最后一个功能有望真正变得有用。

部署

如果您正在使用 Apache 和 mod_rails,您可能希望阅读 这篇文章,它提供了一个新发布的模块 apache-upload-progress 的信息。

最后,Jason Crystal 为 在 Mac OS X 10.5 上打包 Rails 应用程序以供线下使用 撰写了一篇教程。


本周更新到此为止。如果您想阅读更多关于 Ruby 方面的更新,请访问 This Week in Ruby