SuperAPI AI 工具集

active-interaction-coder

测试与质量

查看项目

更新于 10-16 00:03

技能介绍

用途:该技能用于指导在 Ruby on Rails 项目中用 ActiveInteraction 编写类型化业务操作,作为 Service Object 的结构化替代方案。相比 Service Object,它提供统一的 .run / .run! 接口、内置类型声明、标准 Rails 校验和原生组合能力,减少样板代码。

主要能力:支持声明多种输入类型,包括 string、integer、float、boolean、symbol、date、time、date_time、array、hash、object(模型实例)以及带块定义的 typed array;支持默认值与可选字段;可使用 Rails 标准 validates 校验;execute 方法返回值即 outcome.result。支持通过 compose 组合其他 interaction,嵌套失败时错误会自动合并。

使用方式:在 Gemfile 中添加 gem "active_interaction", "~> 5.3";交互类继承 ActiveInteraction::Base,在类中声明输入与校验并实现 execute;在控制器中调用 Users::Create.run(...),通过 outcome.valid? 判断成功,成功读 outcome.result,失败读 outcome.errors,也可用 run! 在出错时抛异常。组合示例如 compose(Users::Create, email: email, name: name, password: password)。

测试:可用 RSpec 对 interaction 做单元测试,断言改变记录数量、outcome 是否 valid、outcome.result 类型以及 errors 内容。

适用场景:适合 Rails 应用中需要类型约束、校验和可复用、可组合业务逻辑的场景,如用户创建、注册流程、控制器动作封装等。

限制:资料未提供安装后的其他依赖、版本兼容范围、性能数据、收费信息或平台支持情况;高级组合、错误处理与自定义类型仅指向 references/active-interaction.md,正文未展开。