Rails 2.2 发布:新特性抢鲜

  • Mirko Stocker
  • 李剑

2008 年 11 月 26 日

话题:RubyWeb框架Ruby on Rails语言 & 开发

在两个 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

查看英文原文:Rails 2.2 Released: A Glance at New Features

RubyWeb框架Ruby on Rails语言 & 开发