2008年11月7日,星期五

本周 Edge Rails 动态

发布者 Mike Gunderloy

正如您可能知道的,Rails 处于积极的开发之中。因此,对于那些没有时间阅读源代码中每一次提交的人来说,我们决定恢复这个博客的部分内容。这一次,我将介绍过去三周的提交:自 Rails 2.2 RC1(也称为 Rails 2.2.0)发布以来的时间。尽管随着 Rails 接近 2.2 的发布,并没有什么重大的新功能被添加,但这并不意味着源代码完全平静:在这三个星期里,大约有 75 次提交。下面来看看其中的一些变化。

在 2.2 版本发布之前,我们看到了一批小的 bug 修复,因为大家都在努力确保版本的质量。这些包括:

  • 修复了 PostgreSQL 适配器中出现的二进位数据损坏 bug。提交
  • 现在,`redirect_to` 背后的正则表达式可以接受更多种类的 URL 协议,使得可以重定向到以前无法访问的一些目标。提交
  • 已修复 `date_select` 和 `datetime_select` 在某些情况下可能引发 Null Pointer Exception 的回归问题。提交
  • 已修复 `sanitize` 辅助方法,以避免对已经正确转义的实体进行双重转义。提交
  • 已阻止 `FormTagHelper` 在 name 包含方括号时生成无效的 HTML提交
  • 已修复 Active Record 作用域方法中的内存泄漏问题。提交

2.2 版本的一些主要功能也在进行微调。在线程安全方面进行了一些清理工作,并进行了更改,以便在开发模式下重新加载 I18n 后端翻译。包含的 Prototype 组件已更新到最新的 1.6.0.3 版本。配置、加载和分发 gem 的代码受到了一些关注,维护数据库连接池的代码也得到了微调。

仅仅因为我们处于功能冻结期,并不意味着不能有一些新功能悄悄地加入。

  • `current_page` 方法现在更加可靠,因为它会忽略您未明确提供的选项(使其更方便地处理使用查询字符串进行分页的 URL 等)。提交
  • 默认日志已得到清理,变得不那么啰嗦:您会看到更少的重复日志消息,因为 Rails 在处理其业务时。提交
  • `render` 方法现在接受一个 `:js` 选项,允许您直接渲染内联 JavaScript,而无需使用 RJS提交
  • 如果您使用的是当前(Ruby 1.8.7 或更高版本)的 Ruby 版本,Action Mailer 会在服务器支持的情况下开启 `STARTTLS`;这使得 Action Mailer 与 GMail 兼容,无需插件。提交

最后一点:我故意不打算涵盖每一次提交;只选择那些对我来说最有趣的。但是,如果我遗漏了您认为非常重要的内容,请随时在评论中添加链接!