你好,我是Claudio Baccigalupo。让我们一起来看看本周Rails代码库中的一些变更。
devcontainer中的PostgreSQL客户端版本现在指向PostgreSQL的最新发布版本,这非常棒,因为……
PostgreSQL 18支持虚拟(非持久化)列,可以在Rails迁移中通过stored: false添加。例如:
create_table :users do |t|
t.string :name
t.virtual :lower_name, type: :string, as: "LOWER(name)", stored: false
t.virtual :name_length, type: :integer, as: "LENGTH(name)"
end
恢复了原始行为,使得在元组上调用Enumerable#sole会返回整个元组(与Enumerable#first相同)。
当并行测试运行时,如果某个工作进程突然死亡,测试套件会永远挂起。此修复现在会跟踪进程ID(PID)以及工作进程ID,从而能够将死亡进程映射回其工作进程条目进行清理。
历史上,行分隔符(U+2028)和段落分隔符(U+2029)在JavaScript字面量字符串中无效,但在ECMAScript 2019中已更改,因此不再需要转义它们。
防止在Newly generated applications中显示关于raise_on_open_redirects的弃用消息。
在单例上定义class_attribute时不引发NameError
在实例的单例类上定义class_attribute,然后通过实例访问该属性时,会引发NameError。
用于并行测试的数据库的设置和配置现在包含副本。这修复了一个问题,即并行运行的集成测试会选择基础测试数据库而不是编号的并行工作进程数据库。
重定向使用非常广泛,并且通常为不同的目的(身份验证、授权、回退)定义在不同的位置。引入了一个新的配置设置action_dispatch.verbose_redirect_logs,用于记录所有重定向的源位置。
修复了Rails 8.1.0.beta1中一个问题,该问题是当在子查询中使用select并带有distinct时,会导致SQL错误。
修复了Rails 8.0.2中的一个回归问题,该问题是之前有效的模型通过autosave变得无效,因为一个远亲记录通过嵌套属性被删除。
修复了Active Record中的一个问题,该问题是尝试取消设置复合外键关联时会引发错误。
您可以在此处查看所有更改的列表。 上周我们有15位贡献者为Rails代码库做出了贡献!
下次再见!
订阅以通过邮件获取这些更新。