嗨,各位,祝大家星期五愉快!Vipul 在这里为您带来本周 Rails 更新。让我们深入了解吧。
改进了 Active Record 迁移文档
Rails Foundation 文档团队继续改进指南的不同部分。此 Pull Request 更新了 Active Record 迁移文档,以接收各种新增内容、改进内容等。
将 .shard_keys、.sharded? 和 .connected_to_all_shards 方法添加到 ActiveRecord::Base
此更改添加了 .shard_keys
、.sharded?
和 .connected_to_all_shards
方法,以开始返回模型的分片信息。
class ShardedBase < ActiveRecord::Base
self.abstract_class = true
connects_to shards: {
shard_one: { writing: :shard_one },
shard_two: { writing: :shard_two }
}
end
class ShardedModel < ShardedBase
end
ShardedModel.shard_keys => [:shard_one, :shard_two]
ShardedModel.sharded? => true
ShardedBase.connected_to_all_shards { ShardedModel.current_shard } => [:shard_one, :shard_two]
在 Active Storage 中通过代理下载失败时使缓存过期
Active Storage 中的代理控制器在流传输之前提前设置缓存头。在某些情况下,在我们向客户端发送第一个字节之前,文件下载可能会失败。在这些情况下,此更改将使缓存失效,并在关闭流之前返回更好的响应状态。
延迟生成断言失败消息
Minitest 支持将失败消息作为可调用项传递,这允许我们推迟生成失败消息。其中一些失败消息可能比较难生成,尤其是在检查非常大的对象或访问过程的 AST 时。此更改现在可以通过将其传递给可调用项来延迟生成失败消息。
使没有字段的“rails g scaffold”生成符合 RuboCop 的代码
当没有字段,而我们使用 rails g scaffold
时,生成的代码不符合 RuboCop。
此更改通过以下操作使其符合规定:
修复 alias_attribute 忽略在父类中定义的方法
在定义常规属性时,不会覆盖继承的方法。然而,在定义别名属性时,不会考虑继承的方法。此更改修复了 alias_attribute
以正确忽略在父类中定义的方法。
您可以在此处查看完整更改列表。
上周有 26 位贡献者参与了 Rails 代码库的开发!
下次见!
订阅,以便通过邮件收到这些更新。