2025年4月18日,星期五

改进闰年计算性能以及更多!

发布者:Greg

您好,我是Greg。让我们一起看看本周 Rails 代码库的变更。

Action Cable:允许将 nil 设置为 Redis 的订阅连接标识符
如果您使用的是 Google Cloud Memorystore 或其他阻止 Redis 中 CLIENT SETNAME 命令的平台,之前您需要覆盖 Redis 连接工厂。通过此项更改,您可以在配置中将连接的 id 设置为 nil

改进 distance_of_time_in_words 中闰年的计算性能
在此更改之前,如果提供的 from_timeto_time 参数相差很远,distance_of_time_in_words 方法可能导致拒绝服务。此拉取请求使用恒定计算替换了存在问题的代码。

允许配置最大缓存键大小
此拉取请求增加了配置缓存键最大尺寸的可能性。当键超过配置的限制(默认 250 字节)时,它将被截断,并在其后附加剩余键的摘要。请注意,之前 ActiveSupport::Cache::RedisCacheStore 允许高达 1kb 的缓存键,现在则减少到 250 字节。您可以通过以下方式进行设置:

config.cache_store = :redis_cache_store, { max_key_size: 64 }

在 SQLite 中使用 TRUEFALSE 表示布尔值
SQLite 3.23.0 添加了对 TRUE 和 FALSE 作为 1/0 别名的支持(类似于 MySQL)。另一项拉取请求将 Active Record 的最低 SQLite 版本要求提高到 3.23.0,而此项则更新了 SQLite 的布尔查询生成,以使用 TRUE 和 FALSE。

您可以在这里 查看所有更改 上周,有 12 位贡献者 为 Rails 代码库做出了贡献!

下次再见!

订阅以通过邮件获取这些更新。