Ruby on Rails 3.1 发布了,带来了 Assets Pipeline、流和 JavaScript 的改变

  • Mirko Stocker
  • 李永伦

2011 年 9 月 19 日

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

前段时间,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

你打算升级你的应用程序吗?Austin Hughey 在他发表到 The H 上的文章给出了一些建议。

查看英文原文:Ruby on Rails 3.1 Released, Brings Assets Pipeline, Streaming, and Javascript Changes

RubyWeb框架Ruby on Rails语言 & 开发