Rails 3.2.3 已发布!!!
本次发布将 config.active_record.whitelist_attributes 的默认值更改为 true。此更改仅影响新生成的应用程序,因此不应给正在升级的用户带来任何向后兼容性问题,但可能会影响一些教程和入门材料。有关更多信息,请参阅 Ruby on Rails 安全指南 中的质量分配部分。
Rails 3.2.3 还引入了一个新选项,允许您控制远程表单在 authenticity_token 生成方面的行为。如果您想对表单进行碎片缓存,那么 authenticity token 也会被缓存,这是不可接受的。然而,如果您只将此类表单与 ajax 一起使用,则可以禁用 token 生成,因为它将从 meta 标签中获取。从 3.2.3 开始,您可以通过设置 config.action_view.embed_authenticity_token_in_remote_forms = false 来选择不在远程表单(例如,传递了 :remote => true 作为选项)中生成 authenticity_token。请注意,这将导致在禁用 Javascript 的情况下发送这些表单时出现错误。如果您选择默认不生成远程表单中的 token,您仍然可以在生成表单时显式传递 :authenticity_token => true 来绕过此设置。该选项的默认值为 true,这意味着现有应用程序不受影响。
我们还调整了对 rack-cache 和 mail 的依赖,以解决这些库最近出现的安全漏洞。如果您正在运行易受攻击版本的 mail 或 rack-cache,则应将这两个 gem 更新到安全版本。在 render 方法中还存在一些回归问题,已在此版本中修复。
Action Mailer
Action Pack
修复 #5632,render :inline 设置了正确的渲染格式。Santiago Pastorino
修复使用 HAML 等插件时 textarea 的渲染。这些插件会编码内容中的第一个换行符。此问题是在 https://github.com/rails/rails/pull/5191 中引入的 James Coleman
在 remote: true 的表单中不包含 authenticity token,因为 ajax 表单使用 meta 标签值 DHH
关闭 rack-cache 的详细模式,我们仍然有 X-Rack-Cache 来检查这些信息。关闭 #5245。Santiago Pastorino
修复 #5238,当模板未渲染时,rendered_format 未设置。Piotr Sarnacki
将 rack-cache 升级到 1.2。José Valim
ActionController::SessionManagement 已弃用。Santiago Pastorino
由于路由器保存了系统中许多部分(如引擎、控制器和应用程序本身)的引用,因此检查路由集实际上可能非常慢,因此我们将 inspect 别名默认设置为 to_s。José Valim
在 textarea 打开标签后添加一个新行。关闭 #393 rafaelfranca
始终从 responder 传递一个 respond 块。我们应该让 responder 来决定如何处理给定的覆盖的响应块,而不是提前终止它。sikachu
修复了 3.2.2 版的布局渲染回归问题。José Valim
Active Model
Active Record
添加了 find_or_create_by_{attribute}! 动态方法。Andrew White
默认允许所有属性分配。将新生成应用程序的默认值更改为允许所有属性分配。还更新了生成的模型类,以便提醒用户 attr_accessible 的重要性。NZKoz
更新 ActiveRecord::AttributeMethods#attribute_present?,使其为空字符串返回 false。Jacobkg
在每类数据库中使用关联时进行修复。larskanis
撤销在 add_timestamps 中设置 NOT NULL 约束 fxn
修复 mysql 以使用正确的文本类型。修复 #3931。kennyj
修复 #5069 - 通过关联构建器保护外键免受质量分配。byroot
Active Resource
Active Support
Railties
您可以在 此处 找到 3.2.2 和 3.2.3 之间更改的详尽列表。
感谢大家为此付出努力,并祝您使用愉快 :)