您好,我是 Greg。让我们一起看看本周 Rails 代码库的更改。
当 Store 列配置错误时,引发描述性错误
此拉取请求改进了 ActiveRecord::Store,如果在列既不是结构化(例如 PostgreSQL 的 hstore/json,或 MySQL 的 json),也不是通过 ActiveRecord.store 声明为可序列化时,会引发描述性异常。以前,在读取或写入访问器时会引发 NoMethodError,但通过此更改,将引发描述性的 ConfigurationError。
默认不启用 automatically_invert_plural_associations
由于它可能导致许多难以检测的问题,automatically_invert_plural_associations 默认关闭,如果您想尝试,可以自行选择启用。
将 devcontainers 设置为可选,并创建 devcontainer 命令
创建此拉取请求是因为 dev containers 将成为 Rails 7.2 的可选功能。因此,新应用程序只有在向 rails new 传递 --devcontainer 标志时才会获得 devcontainer。此外,您可以使用 bin/rails devcontainer 为现有应用程序生成 devcontainer。
为 schema_cache_ignored_table? 添加公共方法
此拉取请求添加了一个公共方法来检查表是否被架构缓存忽略。
以前,应用程序需要从架构缓存类重新实现 ignored_table? 来检查表是否被设置为忽略。此更改添加了一个公共方法来支持此功能,并更新了架构缓存以直接使用该方法。
ActiveRecord.schema_cache_ignored_table = ["developers"]
ActiveRecord.schema_cache_ignored_table?("developers")
=> true
如果不需要,则不配置 Kamal 存储卷
此拉取请求更改了应用程序生成器,仅为 sqlite 或 Active Storage 配置 Kamal 中的 Docker 持久存储卷。如果使用不同的数据库并且选择了 --skip-active-storage 选项,则可以跳过配置。
在另一个拉取请求中,对 storage/ 目录也进行了相同的更改。
为插件生成器添加 rubocop 和 GitHub Actions
此拉取请求将 Rubocop 和 GitHub Actions 添加到插件生成器中,使其与应用程序生成器类似。可以使用 --skip-rubocop 和 --skip-ci 来跳过此操作。
您可以在 这里 查看所有更改的列表。
上周,我们有 22 位贡献者 为 Rails 代码库做出了贡献!
下次再见!
订阅以通过邮件获取这些更新。