大家好,这里是 Greg 和 Robin,为您带来 Ruby on Rails 的最新消息。
Dart Sass for Rails
由于 Ruby Sass 早已弃用,Webpacker 也已被淘汰,一个新的 gem 封装了 Dart Sass 的独立可执行版本,可以轻松地在 Rails 7 中使用 Sass 样式表。
添加 ActiveSupport::TestCase#stub_const
作为一种语法糖,添加了一个新的 #stub_const 方法,可以轻松地在块的持续时间内更改常量的值,并抑制警告。但是,如果您启用了并行测试,此实现并非线程安全。
使用 #associated with no reflection 改进错误消息
使用 where.associated 关联一个不存在的关联,以前会引发一个含糊不清的错误消息;现在已经改进为更清晰的消息。
优化 Object#instance_values
通过使用 Array#to_h 而不是 Hash::[] 并冻结字符串,以避免 Hash#[] 需要进行复制,从而提高了 as_json 的性能。 另一项补丁 也已被合并,以减少调用此方法时分配的数量。
提高 ActiveModel::Name#human 的性能
在模型名称翻译缺失时,还对翻译性能进行了其他改进。这里的诀窍很简单:缓存。另一项改进 #human_attribute_name 性能的 补丁 也已被合并。
扩展双向关联的文档
由于我们不断学习,我们可能会忘记刚开始时的感受。此拉取请求通过一些具体的示例改进了双向关联的文档,这些示例可能对新学习者有用。太棒了!
使 ActiveRecord::ConnectionPool 成为 Fiber 安全的
最后但同样重要的是,Active Record 连接池现在是 Fiber 安全的。它现在会根据您的 config.active_support.isolation_level 的值来依赖线程或 Fiber。这应该能为您提供更好的吞吐量,尤其是在像 Falcon 这样的面向 Fiber 的服务器上。
自上次以来,已有 38 人 贡献了 Rails。照例,有很多更改无法一一介绍,但您可以在 此处 查看所有这些更改。下次再见!