####
大家好!
我是Vipul,高兴地从持续不断的夏季灼热中报道😎。倒一杯饮料🍹,坐下来,放松一下,享受这些最新出炉的变化吧。
本周共有 43 人为让 Rails 变得更加强大做出贡献。查看脉冲页面,了解更详细的信息。
Enumerable#pluck
Enumerable#pluck
刚刚进入 master,它提供的功能与 Active Record 的#pluck
类似。
这样就可以像[{ name: "David" }, { name: "Rafael" }, { name: "Aaron" }].pluck(:name)
这样获取每个人的姓名。非常方便!
Active Record 现在支持为 SQLite 字符串列指定一个排序规则函数。
借助新的Attributes API,现在可以将一个过程指定为一个属性的默认值,这样就可以使用运行时生成的默认值,例如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#uniq
关联关系#uniq
和 数组#uniq
之间的表面相似性一直是导致混淆的源头,因此增加了 关联关系#distinct
,此代码更好地传达了底层发生了什么。
最近 #20198 中的讨论为 relation#uniq
及其小伙伴 #uniq!
和 #uniq_value
敲响了丧钟。这些方法已被弃用,并计划在 Rails 5.1 中移除,所以你可能需要开始使用 #distinct
、#distinct!
和 #distinct_value
。
这就是本周 Rails 的全部内容。一如既往,还有更多更改我们没有空间来涵盖,但是你可以随意 亲自查看!
附注:如果你喜欢这封时事通讯,为什么不与你的朋友分享?:) 如果你希望加入这个项目,请毫不犹豫地 联系 Godfrey - 有很多方法可以让你帮助提升这封时事通讯的精彩程度!