嗨,我是 Greg 和 Robin,为大家带来 Rails 世界的最新消息。
Dart Sass for Rails
由于 Ruby Sass 早已弃用,且 Webpacker 已停止使用,因此已发布了一颗新 gem,这是 Sass Dart 版本独立可执行版本的一层封装,可轻松使用 Sass 样式表搭配 Rails 7。
添加 ActiveSupport::TestCase#stub_const
作为一种语法糖,新增了 #stub_const 方法,可轻松更改某个常量在某个块期间的值,从而避免出现警告。但如果您启用了并行测试,则该实现不具备线程安全性。
使用未反射的 #associated 优化错误消息
过去使用 where.associated 搭配缺失关联会导致一个晦涩的错误消息;现在已通过更清晰的消息对此进行了改进。
优化 Object#instance_values
通过使用 Array#to_h 来代替 Hash::[] 并冻结字符串,从而提高了 as_json 的性能,因此 Hash#[] 不必对其进行复制。另一个修补程序 已合并,以减少调用该方法所做的分配数量。
提升 ActiveModel::Name#human 的性能
在缺少翻译时,已对模型名称翻译做出其他性能改进。这里的诀窍很简单:缓存。另一个修补程序 已合并,它提升了 #human_attribute_name 的性能。
扩展双向关联的文档
由于我们持续学习,我们可能会忘记当初开始时的感觉。此拉取请求通过一些对新手来说可能很有用的具体示例改善了双向关联文档。太棒了!
让 ActiveRecord::ConnectionPool 具备光纤安全性
最后但并非最不重要的一点,Active Record 连接池现在具备光纤安全性。它现在会根据您的 config.active_support.isolation_level 的值,依靠线程或光纤。这应当能让您在面向光纤的服务器上(例如 Falcon)获得更好的吞吐量。
自上次以来,又有 38 人为 Rails 做出了贡献。和往常一样,更改内容太多,无法一一介绍,但您可以在此处查看所有更改。敬请期待下次更新!