大家好,我是 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 代码库做出了贡献!
我们下次见!
订阅我们的邮件,获取这些更新。