在两个 RC 版以后, Rails 2.2 最终发布了。虽然从版本号上没有迈出很大一步,但仍然有着很多新特性。
国际化
有一个翘首以盼很久的问题终于得到了解决——Rails 现在为国际化提供了框架。需要注意的是,这并不意味着 Rails 现在自己已经可以支持 en-US 之 外的其他 locale,只是把其他国际化实现集成到 Rails 里面来变得简单了一些。Sven Fuchs 在他的博客上揭示了提供国际化支持的目标和动机:
第一部分是 API 本身,它只是一个 Ruby 模块而已,里面提供了一些方法供 Rails 调用,将所有请求转发到后端。
第二部分是 Simple 后端,它实现了把 Rails 重新本地化为 en-US 所需的所有方法。
在 Trevor Turk 的博客上,有个简单的本地化示例。
线程安全
在 2.2 版本中, Rails 终于实现了线程安全。多谢 Josh Peek 的 Google 编程之夏项目。由此也导致了数据连接池的出现。但是线程安全对 Rails 到底意味着什么?发布说明中写到:
这意味着你可以用内存中更少的 Rails 拷贝处理更多的请求,会为你带来更好的服务器性能,对多核的利用更为优化,当然,这也要依赖于 web 服务器的底层架构。
JRuby 的 Charles Nutter 也写了一篇详尽的博客回答这个问题:“这意味着把包裹所有请求的单个粗粒度锁去掉,替换成多个细粒度锁,只用来处理那些需要在多个线程中被使用的资源。”
文档完善
Rails 的内部文档已经做了多处改善,而且也有了 Ruby on Rails guides 网站,上面有很多优秀精彩的文章,涉及的话题有安全、测试和调试。
其它变化还包括新的 mailer layouts ,更舒适的memoization ,它们都可以提高代码的可读性。另一个新特性是“更简单的有条件Get”,这个话题我们从前在InfoQ 上已经报道过了。其它最新变化都是在RC2 里面完成的,诸如“请求伪造保护”的改进和ActiveRecord 连接池代码的调优。
升级
在Rails 2.2 中的变化比我们所列举出来的还要多很多,在 Rails 2.2 发布说明中有更详尽的列表。
Rails 2.2 要求安装有最近的 Ruby Gems 1.3.1,如果在 Ruby Gems 升级的时候遇到问题,可以看一下 Eric Hodel 的 blog 。
然后,你就应该为安装 Rails 做好准备了:
gem install rails
评论