大家好!
距离 RailsConf 已经过去了 3 个月,我认为是时候发布 Rails 3.1.0 了。所以,它来了!我已发布 Rails 3.1.0!
要查看更具吸引力且易于阅读的变更列表,请访问 Rails Guides 网站上超棒的 Rails 3.1.0 发行说明。如果想查看不太吸引人的变更列表,请继续阅读!
以下是 Rails 3.1.0 主要变更的一些亮点:
ActionPack 已更新,包含新的资源管道。请参阅 Rails Guides 中有关资源管道的说明。
已添加流式响应支持。此功能允许您在处理实际完成之前将模板流式传输给用户。有关更多信息,请参阅 Rails Guides 或 ActionController::Metal::Streaming 中的文档。中间件已重构以支持此功能。
RJS 已提取到一个 gem。
attr_accessible 及其同类项现在接受 :as 作为选项来指定角色。
添加了 ActiveModel::SecurePassword,用于封装简单的密码使用,并带有 BCrypt 加密和加盐。
已集成准备语句缓存。 ActiveRecord::Base#create 和简单的查找器将使用准备语句和缓存,以提高插入和选择的性能。
关联已重构,以提高简洁性和可维护性。
default_scope 可以接受任何响应 call 的对象。
PostgreSQL 适配器仅支持 PostgreSQL 8.2 及更高版本。
迁移使用实例方法而非类方法。您应该定义一个实例方法 up,而不是定义一个 self.up 方法。
迁移是可逆的。当生成新迁移时,迁移将包含一个名为 change 的方法。此方法中进行的数据库更改将自动知道如何逆向执行。有关更多信息,请参阅 ActiveRecord::Migration 和 ActiveRecord::Migration::CommandRecorder 的文档。
当生成模型时,默认情况下会为 belongs_to 或 references 列添加 add_index。
self.format = :xml。ActiveSupport::BufferedLogger 将日志编码设置为 BINARY,但仍使用文本模式输出可移植的换行符。
添加了 Object#in? 来测试一个对象是否包含在另一个对象中。
引入了 ActiveSupport::Dependencies::ClassCache 类,用于保存对可重载类的引用。
向 Date/DateTime/Time 添加了 weeks_ago 和 prev_week。
JSON 解码现在使用 multi_json gem,该 gem 还包含一个名为 OkJson 的 JSON 引擎。已移除 YAML 后端,转而使用 OkJson 作为 1.8.x 的默认引擎,而 1.9.x 的内置 JSON 实现将默认使用。
默认数据库架构文件以 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 版本,没有你们的帮助,我们是无法做到的。
请继续使用此框架创造令人惊叹的东西!
<3 <3 <3