嘿,这里是 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 类
该方法的实现对于 trilogy 和 mysql2 适配器完全相同,因此将其重构到继承的父类中是有意义的。
如果您期望此方法在 Mysql2Adapter 上定义,那么它已在撰写本文时移动,没有弃用警告或更改日志。
修复了在 sprockets 中使用 trix 的问题
Action Text 已更新,包含 Trix v2.0.7 的最新版本,并修复了在使用 Sprockets 库时出现的问题。
使 Dockerfile 模板与 Kubernetes 无根 pod 兼容
正如标题所示,运行 rails new 时生成的 Dockerfile 现在可以在 Kubernetes 的无根 pod 中运行。
这可能会对其他环境产生影响,但本质上是从用户名和组名更改为使用 UID 和 GID。
迁移文件创建错误时返回非零退出状态
如果在运行 bin/rails generate migration 时发生错误,现在将返回非零退出状态。
为 SQLite3 适配器添加对延迟外键的支持
此 PR 是使 SQLite 成为生产环境中可行选项的步骤之一,这次添加了对 延迟外键 的支持。
为 PostgreSQL 适配器添加对 “SET CONSTRAINTS” 的支持
现在,您可以使用 set_constraints 方法,而无需手动执行查询。
有关更多信息,请参阅 PostgreSQL 文档。
改进断言更改时的错误消息
现在,assert_changes 和 assert_no_changes 的错误消息会显示使用 .inspect 的对象,从而更容易区分 nil 和空字符串、字符串与符号等。
您可以在 这里 查看所有更改的完整列表。
上周,有 30 位贡献者 为 Rails 代码库做出了贡献!
下次再见!
订阅以通过邮件获取这些更新。