大家好!这是 Marcel,有 Andy 的帮助(欢迎!)带来了 Rails 又一周的新闻。
第四年参与 2015 年 Google Summer of Code 已结束,资产管道(性能和…源映射!)、网络控制台(浏览器扩展)、Rails 测试套件(回归测试选择)、开发设置(事件文件系统监控)和内部重构(cookie)领域的工作出色完成。特别感谢 Google、指导师和学生,使这一切成为可能。
46 人贡献了本周的 Rails,包括 7位首次贡献者!如果您有兴趣成为一名贡献者,可以看一下 问题列表。
ignored_columns
一个用例是忽略临时列。在使用 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
的参数和行为与其他集合方法(count
、average
、minimum
和 maximum
)一致,这些方法在 ActiveRecord::Calculations
中定义。
没有比默默的故障更令人沮丧的事情了。此修复程序可以处理运行 rake db:structure:load
时遇到的错误,以及未安装 MySQL 的问题。之前没有输出。
时间戳列可以具有比 Ruby 时间戳更低的精度。这会影响如何在数据库中存储几分之一秒。为解决此问题,在为时间戳属性分配值时使用了列的精度。
unscoped
用法预加载使用 unscoped
的关联导致 unscoped
部分被删除。
这就是本周 Rails 更新的全部内容。与往常一样,虽然由于篇幅限制,这里无法涵盖所有更改,但欢迎大家 自行查看。
下次再见!