2024 年 5 月 24 日,星期五

更好的错误信息,自选开发容器,还有更多!

Greg 发布

大家好,我是 Greg。让我们探讨本周 Rails 代码库中的更改。

当 Store 列配置错误时,引发描述性错误
此拉取请求改进了 ActiveRecord::Store,以便在列不是结构化的(例如,PostgreSQL 的 hstore/json 或 MySQL 的 json)或未通过 ActiveRecord.store 声明为可序列化的列时引发一个描述性异常。以前,在读取或写入访问器时将引发 NoMethodError 错误,但借助此更改,将引发具有描述性内容的 ConfigurationError 错误。

默认情况下,不要启用 automatically_invert_plural_associations
由于它可能会导致很多难以检测到的问题,automatically_invert_plural_associations 默认情况下处于关闭状态,如果你想试一试,可以选择启用它。

使开发容器自选并创建一个 devcontainer 命令
创建此拉取请求是因为开发容器将在 Rails 7.2 中成为一项自选功能。因此,只有在你向 rails new 传递 --devcontainer 标志时,新应用才会获得开发容器。此外,你还可以使用 bin/rails devcontainer 为现有应用生成开发容器。

schema_cache_ignored_table? 公开方法
此拉取请求添加了一个公开方法,用于检查某个表是否被 schema 缓存忽略。
以前,应用程序需要从 schema 缓存类中重新实现 ignored_table?,才能检查是否将表设置为忽略状态。此更改添加了一个公开方法来支持此功能,并更新 schema 缓存以直接使用它。

ActiveRecord.schema_cache_ignored_table = ["developers"]
ActiveRecord.schema_cache_ignored_table?("developers")
=> true

如果不需要,不要配置 Kamal 存储卷
此拉取请求更改了应用生成器,使其仅在 Kamal 中为 sqlite 或 Active Storage 配置 Docker 持久存储卷。如果使用的是其他数据库和 --skip-active-storage 选项,则可以跳过配置。
在另一个拉取请求中,对 storage/ 目录进行了相同的更改。

将 Rubocop 和 GitHub Actions 添加到插件生成器
此拉取请求将 Rubocop 和 GitHub Actions 添加到插件生成器,使其与应用生成器类似。可以使用 --skip-rubocop--skip-ci 跳过此操作。

你可以在 这里 查看全部的修改列表。
本周,22 位贡献者 为 Rails 代码库做出了贡献!

我们下次见!

订阅我们的邮件,获取这些更新。