用途:审查 Rails 应用中的数据库约束、外键与数据完整性规则,发现仅靠模型验证而缺少数据库层强制的问题。
主要能力:对照验证与所需数据库约束(presence 对应 NOT NULL、uniqueness 对应唯一索引、belongs_to 对应外键、enum 与数值范围对应 check 约束);识别 check-then-insert 竞态条件并建议用数据库约束加 rescue ActiveRecord::RecordNotUnique 处理;检查删除时的孤儿记录风险,建议 dependent: :destroy 或数据库级 on_delete: :cascade;审查多态关联的引用完整性,建议校验 commentable_type 白名单或改用独立外键;提供孤儿检测查询思路,如 Comment.left_joins(:post).where(posts: { id: nil }),以及遍历表查找缺失外键的方法。
使用方式:按资料中的审查清单逐项核对——唯一验证是否有唯一索引、presence 是否有 NOT NULL、_id 列是否有外键、删除级联规则是否定义、多态类型是否校验、是否可能产生孤儿记录。输出采用固定格式:标题为 Constraints Review: [PASS/WARN/FAIL],分列缺失数据库约束、外键问题、竞态风险、孤儿风险与按优先级排序的建议。
适用场景:Rails 模型与迁移的代码审查、数据完整性加固、并发写入安全评估。
限制:资料未提供安装命令、运行方式、平台支持、收费信息或具体效果数据,暂未提供。