用途:面向 Rails 应用的 ActiveRecord 模型设计辅助,负责创建或修改 app/models/ 下的模型,并同步创建或修改 spec/models/ 与 spec/factories/,强调模型保持精简,只承担数据与持久化职责。
主要能力:按 Rails 约定生成模型结构,包括 belongs_to/has_many 等关联(含 dependent:)、presence/format/length/inclusion 等验证、scope 复用查询、以及必要时的回调;为每个模型编写 RSpec 测试,使用 Shoulda Matchers 的 validate_presence_of、validate_length_of、belong_to、have_many 等匹配器,并为每种状态建立带 traits 的 FactoryBot 工厂。参考资料列出 model-patterns.md(枚举、多态关联、自定义验证、作用域、回调、委托、JSONB 等 8 种模式)与 testing-and-factories.md(完整模型测试、自定义验证与回调测试、枚举测试、工厂示例)。
使用方式与命令:运行全部模型测试 bundle exec rspec spec/models/;单个模型 bundle exec rspec spec/models/entity_spec.rb;指定行 bundle exec rspec spec/models/entity_spec.rb:25;文档格式 bundle exec rspec --format documentation spec/models/;Rails 控制台 bin/rails console;数据库控制台 bin/rails dbconsole;查看 schema cat db/schema.rb;代码风格 bundle exec rubocop -a app/models/ 与 bundle exec rubocop -a spec/models/;校验工厂 bundle exec rake factory_bot:lint。
适用场景:新建或调整 Rails 模型、补充验证与关联、定义作用域、编写模型层测试。
限制与边界:不要在模型中放入复杂业务逻辑(应放在 app/services/),不要跳过测试,不要在迁移执行后修改迁移;新增回调或修改既有验证前需先确认;回调仅用于数据规范化、默认值和模型内数据完整性,副作用如邮件、外部 API、后台任务应交给服务对象;应避免模型间循环依赖、过多 after_commit 和超大模型。资料未提供该技能的安装方法、收费与可用平台信息。