大家好,zzak 在此。上周是短周,我们休息了一周,现在让我们来回顾一下。
请注意:Rails World CFP 将于3月11日开放。
2025年着陆页目前正在构建中,但如果您打算提交演讲,请留意:rubyonrails.org/world/
为 devcontainers 添加 Podman 指令
这不一定是 Rails 本身的变化,但值得注意的是,您不必依赖 Docker 来使用 devcontainers,我们在 CI 中也使用 Podman 来测试 rails new 的流程。
生成身份验证时添加 login_as(user) 测试助手
使用身份验证生成器时,您现在会获得 sign_in_as(user) 和 sign_out 测试助手方法。
引入“ActiveSupport::ErrorReport#add_middleware”
此 PR 将中间件堆栈的概念引入 ErrorReporter。中间件用于添加或修改正在报告的错误发生的上下文,并可以使用 add_middleware 添加。
为“ActiveJob::Base#retry_on”和“#discard_on”添加“report”选项
使用 Active Job 时,现在可以指定当重试或丢弃作业时,将错误报告给 ErrorReporter。
支持禁用 MySQL v8+ 和 MariaDB v10.6+ 的索引
此 PR 利用了较新版本 MySQL 和 MariaDB 中的“不可见”或“已忽略”索引,这些索引可以使用迁移来管理。
有关更多信息,请参阅 MySQL 或 MariaDB 文档。
为 SQLite3 的“ActiveRecord::Result”添加列类型
使用 SQLite3 适配器时,您现在可以通过查询使用 column_types 获取列类型信息。
当以只读角色悲观锁定数据时,引发“ActiveRecord::ReadOnlyError”
此 PR 确保当 current_preventing_writes 启用时调用 lock! 会引发错误,以提高在此场景下的可用性。
确保“reverse_order”尊重“implicit_order_column”
此 PR 确保 reverse_order 在反转顺序时会考虑模型的 implicit_order_column。
将 SafeBuffer 添加到 messagepack 可序列化类型列表中
使用 MessagePack 序列化 cookie 时,此 PR 修复了尝试在 cookie 中持久化 SafeBuffer 类型对象时出现的问题。
修复“LocalStore#read_multi_entries”以区分已记录的未命中
此 PR 解决了在使用 LocalStore 缓存时出现的一个错误,其中对键的读取或 exists? 检查会意外地导致连续的 fetch_multi 调用为值返回 nil。
添加时区 America/Asuncion
他们去年停止了夏令时,并添加了一个新的 IANA 时区。
为“MessageEncryptors”和“MessageVerifiers”添加“prepend”方法
这为 ActiveSupport::MessageEncryptors 和 ActiveSupport::MessageVerifiers 添加了一个 #prepend 方法。
此方法类似于 #rotate,但它会添加到列表的开头而不是末尾。因此,它可以用于覆盖预配置实例(如 Rails.application.message_verifiers)生成消息的方式。
您可以在 此处 查看所有更改。 上周,共有 34 位贡献者 为 Rails 代码库做出了贡献!
下次再见!
订阅以通过邮件获取这些更新。