前段时间,Ruby on Rails组发布了最受欢迎的Ruby Web框架的3.1版本,时间几乎是上一个主要版本Rails 3.0发布一年之后。这个版本包含了以下重要特性:
- Assets Pipeline
- 流
- 可逆迁移
- 把jQuery作为默认的JavaScript库
Assets Pipeline是Rails的主要更新,有个完整的指南讲述了如何使用它以及它能做什么:
Assets Pipeline提供一个框架串联并缩减或压缩JavaScript和CSS。它还允许通过其它语言编写它们,比如说,CoffeeScript、Sass和ERB。
Assets Pipeline也是David Heinemeier Hansson在RailsConf上的演讲内容。
流是指Rails现在支持HTTP流了,也被称作块状传输编码。流的优点是Web服务器可以在它完全计算完毕之前开始传输。Rails组在他们的博客上解释了流的好处:
流没有减少延迟,也没有减少生成动态响应所需的时间。但因为应用程序立刻发送内容,而不是等到整个响应渲染出来,所以客户端可以尽早请求内容。特别地,如果你刷新HTML文档头,将会以并行的方式获取CSS和JavaScript文件,与此同时,服务器会处理内容的生成。结果是页面加载更快了。
有个Railscast解释了如何为Rails应用程序设置流。
Rails已经支持向下迁移一段时间了,那么,为什么说可逆迁移是新的?到目前为止,你都不得不自己写向下迁移,但Rails 3.1现在可以帮你完成这部分工作。Rohit Arondekar解释其中的奥妙:
基本上,如果你在你的迁移里定义一个change方法(而不是之前的up和down方法),然后应用迁移,那么命令会照常执行。不过,在逆向迁移的时候,命令会被记录,然后生成一组反向命令并运行之。反向命令只是简单地把原来命令反过来执行。
这些只是Rails 3.1的一部分改变,发布说明里面还有很多等着你去发现。举个例子,强制SSL的配置选项现在支持了。要知道你的插件能否在3.1下工作,请查看railsplugins.org。