欢迎阅读 Rails 本周动态,这是 Rails 社区重点信息的周报。
如 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 的下次软件更新。
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。
Rails 2.1 添加了命名范围,大大简化了在 Active Record 模型中编写“查找逻辑”。这是一项非常有用的功能,在这篇恰如其分地被命名为 命名范围真赞 的文章中得到了很好的解释(我们表示同意)。同时检出 Ryan Bates 关于此主题的 railscasts:named_scope 和 Anonymous Scopes。您对此周有关 在 Rails 2.1 中缓存 的 railscast 也会感兴趣。
三个其他引人注目的 ActiveRecord 相关帖子分别为 Smart Model, Dumb Controller、Bulk insertion of data with ActiveRecord 和 Timestamped 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。