大家好!我是 Marcel(来自 Marcel),在 Andy(欢迎!)的协助下,给大家带来又一周的 Rails 新闻。
2015 年 Google Summer of Code 项目的第四年圆满结束,在 Asset Pipeline(性能和…源映射!)、Web Console(浏览器扩展)、Rails 测试套件(回归测试选择)、开发设置(事件文件系统监控)以及内部重构(cookie)等领域都取得了出色的成果。特别感谢 Google、导师和同学们让这一切成为可能。
本周有 46 人为 Rails 贡献代码,其中包括 7 位首次贡献者!如果您有兴趣成为贡献者,可以查看 issues 列表。
ignored_columns这样做的用例之一是忽略那些临时的列。当使用在线 schema 变更工具(如 lhm 或 pt-online-schema-change)时,可能会遇到这种情况。
create_table DSL 现在支持外键不仅将 foreign_key 作为选项传递给 create_table DSL 的 references 方法更加方便,而且生成的 SQL 也更有效率。
save 及其相关方法的性能通过利用内部代码改进(MutationTracker 对象),Active Record 的 save 方法及其类似方法在性能上得到了显著提升。
assert_difference 更改为返回所 yield 块的结果这样,我们就可以对返回值执行新的断言,而无需将其赋值给外部变量,或者将后续的断言嵌套在 assert_difference 块中。
AR::Calculations#sum 的参数现在,#sum 的参数和行为与 ActiveRecord::Calculations 中定义的其他聚合方法(count、average、minimum 和 maximum)保持一致。
没有什么比静默失败更令人沮丧的了。此修复处理了在运行 rake db:structure:load 且未安装 MySQL 时发生的错误。以前没有任何输出。
时间戳列的精度可能低于 Ruby 时间戳。这会影响小数秒在数据库中的存储方式。为了解决这个问题,在为时间戳属性赋值时使用了列的精度。
unscoped 的错误使用预加载使用 unscoped 的关联时,会丢失 unscoped 部分。
以上就是本周 Rails 的全部内容。一如既往,实际的更改比我们在此处能涵盖的多得多,但请随时 自行查看。
下次再见!