####
大家好!
我是 Vipul,很高兴地向大家汇报,我正处于一个闷热的夏天 😎。给自己倒杯饮料 🍹,坐下来,放松一下,尽情享受我们即将分享的这些 最新 的更新。
本周共有 43 位贡献者帮助 Rails 变得更加出色。请查看 Pulse 页面 了解更多详情。
Enumerable#pluckEnumerable#pluck 方法已在 master 分支上线,提供了与 Active Record 的 #pluck 类似的功能。
这使得像 [{ name: "David" }, { name: "Rafael" }, { name: "Aaron" }].pluck(:name) 这样的用法可以获取所有人的名字。非常方便!
Active Record 现在支持为 SQLite 字符串列指定 collation 函数。
通过新的 Attributes API,现在可以为属性指定一个 proc 作为默认值,这允许运行时生成默认值,例如 attribute :year, :integer, default: -> { Time.now.year }。另请参阅这些 相关更改。
strict: :default 保留 MySQL 的 sql\_mode默认情况下,Rails 会使用 sql_mode=STRICT_ALL_TABLES 来覆盖 MySQL 的 sql_mode 设置,以防止数据丢失。虽然这很有帮助,但它有一个不幸的副作用,那就是会覆盖任何用户自定义的设置。
如果您希望自行管理此设置,现在可以在 连接的配置中指定 strict: :default,Rails 将会保留您的 sql_mode 设置。(但仍然强烈推荐使用 STRICT_ALL_TABLES!)
render nothing: true如果您正在使用 render nothing: true,您应该开始将其替换为 head :ok,它具有相同的功能并且更具语义。此选项将在 Rails 5.1 中被永久移除。
Relation#uniqRelation#uniq 和 Array#uniq 之间的表面相似性一直是一个令人困惑的来源,这导致了 Relation#distinct 的引入,它能更好地传达底层发生了什么。
最近在 #20198 上的讨论为 Relation#uniq 及其同伴 #uniq! 和 #uniq_value 敲响了最后的丧钟。这些方法已被弃用,并计划在 Rails 5.1 中移除,因此您可能很快就需要开始使用 #distinct、#distinct! 和 #distinct_value。
以上是本周 Rails 的全部内容。一如既往,还有许多我们无法在此一一详述的更改,但请随时 自行查看!
附注:如果您喜欢这个新闻通讯,为什么不分享给您的朋友呢? :) 如果您想参与到这个项目中,请随时联系 Godfrey – 有很多方法可以让这个新闻通讯变得更棒!