SuperAPI AI 工具集

rails-model-generator

编程与开发

查看项目

更新于 10-16 04:05

技能介绍

用途

Rails Model Generator 是一个用于 Ruby on Rails 项目的技能,采用 TDD(测试驱动开发)方式创建模型。它把模型创建拆解为从需求定义到测试通过的完整流程,适合在新建模型、添加模型校验、定义关联等场景中使用。

主要能力

该技能覆盖模型创建的完整步骤,包括:

  • 定义需求:明确属性、校验、关联、作用域、实例方法和回调。
  • 编写模型 spec:在 spec/models/[model_name]_spec.rb 中编写预期行为,先让测试失败(RED)。
  • 创建 factory:在 spec/factories/[model_name_plural].rb 中生成测试数据。
  • 生成并运行迁移:使用 bin/rails generate migration 创建表结构,补充非空约束、默认值和索引。
  • 实现模型:创建模型文件,添加校验与关联,使测试通过(GREEN)。
  • 支持常见模式:枚举校验、多态关联、计数器缓存、软删除等。

使用方式

技能提供了一份工作流清单,按顺序执行:

  1. 定义需求(属性、校验、关联)
  2. 创建模型 spec(RED)
  3. 创建 factory
  4. 运行 spec(应失败,因为模型/表不存在)
  5. 生成迁移
  6. 运行迁移
  7. 创建模型文件(空)
  8. 运行 spec(应失败,因为缺少校验)
  9. 添加校验和关联
  10. 运行 spec(GREEN)

每一步都给出了模板或命令示例,例如需求模板、spec 示例、factory 示例、迁移生成命令、迁移文件示例、模型实现示例,以及运行测试的命令 bundle exec rspec spec/models/model_name_spec.rb。

适用场景

  • 在 Rails 项目中新建模型时,希望以测试先行的方式保证质量。
  • 为已有模型添加校验、关联、作用域或实例方法。
  • 需要统一团队模型创建流程,减少遗漏。

限制

资料中未提供该技能对 Rails 版本、RSpec 版本、FactoryBot 等依赖的具体要求,也未说明是否支持其他测试框架或数据库。部分示例中引用了 first_name、last_name 等属性,但需求模板中未列出,实际使用时需根据项目情况调整。资料中未提供收费、价格、平台等信息。