2013年2月26日,星期二

Rails 4.0:Beta 1 已发布!

由 dhh 发布

紧随 Ruby 2.0 的第一个生产版本之后,Rails 4.0 的第一个 beta 版本也发布了。两者配合得很好,并且已经在包括 Basecamp Breeze 在内的多个应用程序中运行。事实上,Ruby 2.0 是使用 Rails 4.0 的首选 Ruby 版本。

此 beta 版本的目的是让尽可能多的人尝试从 Rails 3.2 及更早版本升级,并鼓励一些勇于尝试的人直接在 Rails 4.0 上启动新应用程序。这是我们发现所有问题并确保能够发布稳定最终版本的唯一方法。所以,如果您可以,请帮助我们!

Rails 4.0 充满了新功能,同时也淘汰了过期的旧功能。

一个重点是让构建快速的现代 Web 应用程序变得非常简单,而无需转向客户端 JS/JSON 服务器路线。这项工作很大程度上是 在新版 Basecamp 中为 Rails 开创的,并侧重于三个方面:

  1. 通过 基于键的过期 和自动化的嵌套模板依赖管理(最初在 cache_digests 插件中探索),轻松实现 Russian Doll 缓存。
  2. 通过 Turbolinks 加速客户端,它在速度方面基本上将您的应用程序变成了一个单页 JavaScript 应用程序,但没有开发上的缺点(除了可能与某些现有 JavaScript 软件包的兼容性问题)。
  3. 声明式的 etags 使确保您利用 HTTP 新鲜度更加容易。

对于想要构建客户端 JS 视图的人来说,Rails 当然仍然是一个出色的 JSON 服务器,但随着我们在 Rails 4.0 上取得的进展,您绝对不需要为了拥有一个超快速的应用程序而选择这条路线。

我们还增加了 持久连接的实时流,并且 Rails 4.0 现在开箱即用地支持多线程服务器(不再需要 config.threadsafe!)。

Active Record 也得到了大量的改进,使与作用域和查询结构相关的所有内容更加一致。

考虑到我们在安全问题上花费了很多精力,我们在这些方面也有一些重大的更新:

  • 会话存储现在默认加密(以前仅签名)。
  • Strong Parameters 取代了 attr_protected(现在是一个 插件),以防止外部参数。
  • X-Frame-Options、X-XSS-Protection、X-Content-Type-Options 等安全头默认开启,并带有稳定的值。
  • XML 参数解析已被移至一个 插件

除了这些新功能和修复之外,我们还有数百项其他改进。所有内容都经过了梳理、优化、简化,并且我们已经提取了许多旧的 API 和那些“大多数人大多数时候”用不到的东西。

Active ResourceActive Record Observers 以及 Action Pack 的 pageaction 缓存 都是不再核心但仍然存在的插件的例子。

我们鼓励您仔细阅读所有 Rails 框架的 CHANGELOG,并为我们为 Rails 4.0 所做的数百项改进感到高兴:Action PackActive ModelActive RecordActive SupportRails

现在让我们共同努力,确保发布稳定,并享受 Ruby on Rails 24(或 42?)的强大组合!请在 Rails issue tracker 上报告您发现的所有问题。我们仍在编写 从 3.2 到 4.0 的升级指南,但这是一个获取帮助的好起点。一如既往,使用 gem install rails --version 4.0.0.beta1 --no-ri --no-rdoc 安装 beta 版本(目前 RubyGems 2.0 上的 --pre 和 ri 生成功能已损坏)或依赖 v4.0.0.beta1 标签