2011年8月31日,星期三

Rails 3.1.0 已发布!

由 aaronp 发布

大家好!

距离 RailsConf 已经过去了 3 个月,我认为是时候发布 Rails 3.1.0 了。所以,它来了!我已发布 Rails 3.1.0!

变更

要查看更具吸引力且易于阅读的变更列表,请访问 Rails Guides 网站上超棒的 Rails 3.1.0 发行说明。如果想查看不太吸引人的变更列表,请继续阅读!

以下是 Rails 3.1.0 主要变更的一些亮点:

ActionPack

  • ActionPack 已更新,包含新的资源管道。请参阅 Rails Guides 中有关资源管道的说明

  • 已添加流式响应支持。此功能允许您在处理实际完成之前将模板流式传输给用户。有关更多信息,请参阅 Rails Guides 或 ActionController::Metal::Streaming 中的文档。中间件已重构以支持此功能。

  • RJS 已提取到一个 gem。

ActiveModel

  • attr_accessible 及其同类项现在接受 :as 作为选项来指定角色。

  • 添加了 ActiveModel::SecurePassword,用于封装简单的密码使用,并带有 BCrypt 加密和加盐。

ActiveRecord

  • 已集成准备语句缓存。 ActiveRecord::Base#create 和简单的查找器将使用准备语句和缓存,以提高插入和选择的性能。

  • 关联已重构,以提高简洁性和可维护性。

  • default_scope 可以接受任何响应 call 的对象。

  • PostgreSQL 适配器仅支持 PostgreSQL 8.2 及更高版本。

  • 迁移使用实例方法而非类方法。您应该定义一个实例方法 up,而不是定义一个 self.up 方法。

  • 迁移是可逆的。当生成新迁移时,迁移将包含一个名为 change 的方法。此方法中进行的数据库更改将自动知道如何逆向执行。有关更多信息,请参阅 ActiveRecord::MigrationActiveRecord::Migration::CommandRecorder 的文档。

  • 当生成模型时,默认情况下会为 belongs_toreferences 列添加 add_index

ActiveResource

  • 所有请求的默认格式已更改为 JSON。如果您想继续使用 XML,则需要在类中设置 self.format = :xml

ActiveSupport

  • ActiveSupport::BufferedLogger 将日志编码设置为 BINARY,但仍使用文本模式输出可移植的换行符。

  • 添加了 Object#in? 来测试一个对象是否包含在另一个对象中。

  • 引入了 ActiveSupport::Dependencies::ClassCache 类,用于保存对可重载类的引用。

  • 向 Date/DateTime/Time 添加了 weeks_agoprev_week

  • JSON 解码现在使用 multi_json gem,该 gem 还包含一个名为 OkJson 的 JSON 引擎。已移除 YAML 后端,转而使用 OkJson 作为 1.8.x 的默认引擎,而 1.9.x 的内置 JSON 实现将默认使用。

Railties

  • 默认数据库架构文件以 UTF-8 编码写入。

  • 仅当存在 x_sendfile_header 时,才使用 Rack::Sendfile 中间件。

  • 为 rails runner 添加了别名 r

  • jQuery 是新的默认 JavaScript 库。

  • 添加了 config.force_ssl 配置,该配置会加载 Rack::SSL 中间件并强制所有请求使用 HTTPS 协议。

更多信息

有关更详细的变更列表,请参阅 GitHub 上的 Rails 仓库 中包含的所有 CHANGELOG 文件。

有关更详细的变更列表,请参阅 Rails 3.0.10 和 3.1.0 之间的提交列表

结束

我个人对这次发布感到非常自豪。我想感谢那些测试我们候选版本的人,提交补丁和发送 bug 报告的人。我认为 Rails 3.1.0 是迄今为止最好的 Rails 版本,没有你们的帮助,我们是无法做到的。

请继续使用此框架创造令人惊叹的东西!

SHA-1

  • b68f74ced662145a4139409edf3c51db1159ead8 actionmailer-3.1.0.gem
  • 136474f270677ae75ad0f9599d26e89cf1d4bc7b actionpack-3.1.0.gem
  • e6b68453c08bb0da52ed1d422ba2f87a5e3aa794 activemodel-3.1.0.gem
  • dfbae15c0d395304812c22fbf18aa9daadbe20b4 activerecord-3.1.0.gem
  • 3f1f547e500d1ffc1f7c3ee4ab9eb1526157a870 activeresource-3.1.0.gem
  • f21627c2f429abfa8685d2147fadab6704c13869 activesupport-3.1.0.gem
  • 21c6592189fb358a066846754a8f7ce7a238fca6 rails-3.1.0.gem
  • 79cfa1eca232de9a45453829287e4438089b7955 railties-3.1.0.gem

<3 <3 <3