大家好,
我很高兴地宣布 Rails 4.0.1 已发布。这是一个错误修复版本,包含了超过 460 个提交。
此版本对 Active Record 处理后续 order 调用方式进行了重要更改。在 Rails 4.0.0 中,当您执行如下操作时:
User.order("name asc").order("created_at desc")
后面调用的 order 将被添加到 ORDER BY 子句中,生成如下 SQL:
SELECT * FROM users ORDER BY created_at desc, name asc
在 Rails 4.0.1 中,Rails 3 的行为已恢复,生成的 ORDER BY 子句如下:
SELECT * FROM users ORDER BY name asc, created_at desc
我们选择恢复此行为,因为它引入了一个重大的向后不兼容性,使得在没有对应用程序代码进行重大更改的情况下难以实现升级。此外,我们认为旧的行为是一个错误,因为它与其他作用域方法在链式调用时表现不同。因此,我们采取了最保守的路径,将其恢复,以符合平滑升级到 Rails 4 的理念。
对于那些想要旧行为的用户,可以使用 .reorder 或 .unscope 来删除 ORDER BY 子句并生成新的子句。
此外,此版本还增加了一些性能改进,使 Rails 4 更快。
如需查看每个 gem 的变更,请阅读 GitHub 上的更新日志
完整列表
要查看完整的更改列表,请 在 GitHub 上查看所有提交。
如果您想验证您的 gem 与我上传的 gem 是否相同,请使用这些 SHA-1 哈希值
我想感谢所有为本次发布做出贡献的贡献者。