星期日,2011 年 5 月 22 日

Rails 3.1:发行候选版本

大卫发布

正如我在 Rails 大会上承诺的,我们终于准备好了 Rails 3.1:发行候选版本。这是一个激动人心的版本。我们有三个优秀的明星功能和更多令人惊叹的改进。首先介绍明星

资源管道
3.1 版本的明星功能是资源管道,由 Sprockets 2.0 提供支持。它使得 CSS 和 JavaScript 成为一流的代码,并支持适当的组织,包括在插件和引擎中使用。请查看 我的 Rails 大会主题演讲,了解完整指南。它包含 SCSS(作为样式表的默认值)和 CoffeeScript(作为 JavaScript 的默认值)。即将提供大量文档。

HTTP 流式处理
这允许浏览器在服务器仍在生成响应时下载样式表和 JavaScript。结果是明显更快的页面。它是选择加入的,并且确实需要 Web 服务器的支持,但流行的 Nginx 和 Unicorn 组合已做好准备利用它。有一个精彩的 HTTP 流式处理的 Railscast,并且 API 文档 也很充实。

jQuery 现已成为默认值
我们将 jQuery 设置为随 Rails 附带的默认 JavaScript 框架,但如果你愿意,可以轻松地切换回 Prototype。它全部捆绑在 jquery-rails 和 prototype-rails gem(宝石)中。只需在 Gemfile 中依赖你想要的那个,它就可以正常工作了。

其他好的内容

  • 可逆迁移DRY 迁移,知道如何还原自身。更简洁、更漂亮的迁移。
  • 可安装引擎:引擎现在可以具有自己的路由和辅助程序范围。它们还可以利用资源管道(很快就会有更多相关文档)。 阅读 可安装引擎的幕后故事(即使资源管道内容现在已过时)。
  • 标识映射:由于一些 重要注意事项 仍有待完善,因此默认情况下未启用它。但如果你能处理这些问题,那么这是一个减少应用程序将会触发的查询数量的好方法。更快就是更好!
  • 已准备好的语句:Active Record 现使用缓存的已准备好的语句,在所有情况下对于 PostgreSQL 都是巨大的提升,对于复杂语句对于 MySQL 也是提升。
  • Rack::Cache 默认情况下开启:这使得它可以使用 HTTP 缓存配合 条件 get 作为页面缓存的替代项(我们很快会将其分解为一个插件并从核心代码中移除)。
  • 启用 Ruby 1.9 的测试输出:由 Turn 组件提供的更精美的测试输出。默认情况下,它在 Ruby 1.9 上随着新的应用程序一起开启。
  • 强制使用 SSL:现在,使用 force_ssl 让您的应用程序保持安全比以往任何时候都容易。可以按应用程序或按控制器执行。
  • 基于角色的批量赋值保护:attr_protected 现在接受角色,因此处理管理员/非管理员划分变得更容易,而且还有更多优势。
  • has_secure_password:基于 BCrypt 的简单密码。现在没有任何借口不推行您自己的身份验证方案了。
  • 自定义序列化程序:使用 JSON 或任何其他您喜欢的内容序列化对象。

您还可以查看一个 更长的更改日志,并从 Railscast 获得 视频概述

如果您正在启动一个新应用程序,强烈建议您使用 Ruby 1.9.2。Rails 将继续支持 1.8.x 直到 Rails 4.0,但它被认为是传统选项。Ruby 1.9.x 才是动作所在的舞台。加入我们,享受巨大的速度提升。

您可以使用 gem install rails --pre 安装 Rails 3.1:发行候选版本。享受吧,并 在 Github 上报告所有发行候选版本问题。如果一切顺利,我们希望在两周内发布最终版本。