2023 年 11 月 3 日,星期五

MariaDB 的“INSERT...RETURNING”,PostgreSQL 的“SET CONSTRAINTS”,SQLite 的“DEFERRABLE”外键,以及更多内容!

zzak 发布

嘿,zzak 在此发布 2023 年 11 月的本周 Rails。

支持 MariaDB 的 RETURNING 子句
此 PR 为 MariaDB 适配器添加了 INSERT ... RETURNING 表达式的支持。
您可以在 MariaDB 的官方文档中阅读有关此功能的更多信息。

简化 attr_internal_define
此 PR 优化了 Module.attr_internal_naming_format= 的内部,以便急切地从给定格式中去除“@”前缀。
不再接受向此方法提供“@”前缀,并将引发弃用警告。

让服务作为带有“has_one_attached”和“has_many_attached”的 Proc
现在您可以将服务指定为可调用的 Proc,让 Active Storage 中的专门附加关联更加灵活。

class User < ActiveRecord::Base
  has_one_attached :avatar, service: ->(user) do
    user.in_europe_region? ? :s3_europe : :s3_usa
  end
end

将“quote_string”移动到 AbstractMysqlAadapter 类
对于trilogymysql2适配器,该方法的实现完全相同,因此将它们重构到继承的父类中是有意义的。
如果您希望在 Mysql2Adapter 上定义此方法,它已移动,没有弃用警告,也没有更改日志(在编写本文时)。

修复在 sprockets 中使用 trix
Action Text 已更新为包含最新版本的 Trix v2.0.7,并且在尝试将库与 Sprockets 一起使用时修复了一个问题。

让 Dockerfile 模板与 Kubernetes 无根容器兼容
如标题所述,现在在 Kubernetes 中的无根容器中运行时,在运行rails new时生成的Dockerfile 可以正常工作了。
这可能会对其他环境产生影响,但本质上从用户名和组名更改为使用 UID 和 GID。

迁移文件创建错误中的非零退出状态
如果在运行bin/rails generate migration时出错,现在会返回非零退出状态。

为 SQLite3 适配器添加延迟外键支持
此 PR 是朝向使 SQLite 成为生产中的可行选项迈出的一步,这次添加了 延迟外键 的支持。

为 PostgreSQL 适配器添加“SET CONSTRAINTS”的支持
现在您可以使用set_constraints方法,而不是手工执行查询。
有关详细信息,请参阅PostgreSQL 文档

在声明更改时改进错误消息
现在,assert_changesassert_no_changes 的错误消息将使用 .inspect 来显示对象,让区分 nil 和空字符串、字符串和符号等变得更容易。

你可以在 这里 查看变更的全部清单。
上周共有 30 位贡献者 为 Rails 代码基础做出了贡献!

下次再见!

订阅,将这些更新内容发送至你的邮箱。