新年快乐!你的假期过得怎么样?收到了什么不错的礼物吗?万一你错过了,Ruby 2.4.0 已于圣诞节发布,所以如果你还没有安装……立即执行 `rbenv install 2.4.0`!
2017 年的第一周,rails/rails 已经收到了超过 100 条提交。祝贺所有 32 位贡献者,特别是首次贡献的 8 位开发者。继续加油!
以下是本周 rails master 最重要的更新。
使用 Action Mailer,现在可以轻松指定附件的内容类型。例如:`mail(body: "\<h1\>Hello\</h1\>", content_type: "text/html")`。
现在,你可以要求 Active Record 在增加、减少、重置或更新计数缓存时更新特定的时间戳列。
如果你的应用程序没有设置 `RAILS_ENV` 或 `RACK_ENV`,那么 `Rails.env` 的值将回退到 `development`,而不是一个空字符串。
Array#sum 在 Rails 中是通过 Monkey Patch 定义的。Ruby 2.0 引入了 Refinements 以实现更好的封装。这是它们首次在 rails/rails 中使用的 PR。
一些测试和代码已得到修复并回溯到 4-2-stable,以便在 Ruby 2.4 上运行 Rails 4.2 不会引发任何错误。
在 Ruby 2.4 中,NilClass、FalseClass、TrueClass、Symbol 和 Numeric 都支持 `dup`。为了保持一致性,现在所有这些类别的 `duplicable?` 都将返回 `true`。
Rails 5.0 中存储 `nil` JSON 负载的方式发生了一个意外的变化。此修复程序将 `nil` 映射到 SQL `NULL`,与 Rails 4.x 中的情况完全相同。
如果你的 Rails 引擎名称包含连字符,那么这个 PR(修复了命名空间的控制器路径)就是为你准备的!
这修复了一个回归,之前 cookies 只在 GET 请求上更新。现在,我们将为所有请求更新此助手。
MySQL 5.0 早已“生命周期结束”。Rails 现在至少需要 5.1.10 版本。
此时,你应该已经放弃了对 Rake 的 `db:test:clone`、Configuration 的 `serve_static_files` 和 `static_cache_control` 以及 ActiveRecord 的 `uniq`、`uniq!`、`uniq_value`、`insert_sql`、`update_sql`、`delete_sql` 的任何引用。
以上就是 Claudio 本周的更新。希望你喜欢本期内容。现在……让我回去写我的 RailsConf 提案吧……我只剩下 14 天时间来提交一个好的演讲!
四月底凤凰城见!