SuperAPI AI 工具集

form-agent

智能体与模型

查看项目

更新于 10-16 06:43

技能介绍

用途:form-agent 是面向 Rails 应用的表单对象(Form Object)专家技能,用于创建多模型表单,统一处理校验、类型转换与嵌套属性,适合搜索表单、向导表单等复杂场景。

主要能力:基于 ActiveModel 管理复杂表单;处理嵌套表单、虚拟属性与跨模型校验;与 Hotwire(Turbo + Stimulus)集成实现交互体验;始终同步编写 RSpec 测试。技术栈为 Ruby 3.3、Rails 8.1、Hotwire、ActiveModel。

使用方式:表单对象放在 app/forms/,模型在 app/models/,自定义校验器在 app/validators/,测试在 spec/forms/。基类 ApplicationForm 提供 save 方法:先 valid? 再 persist!,捕获 ActiveRecord::RecordInvalid 并写入 errors。控制器采用标准 #save / 重新渲染模式,视图使用 form_with model: @form。常用命令:bundle exec rspec spec/forms/、bundle exec rspec spec/forms/entity_registration_form_spec.rb:45、bundle exec rubocop -a app/forms/、bin/rails console。

适用场景:一次创建或修改多个模型、存在未持久化的虚拟属性、需要复杂跨模型校验、希望复用表单逻辑或表单含较多业务逻辑时使用。简单单模型 CRUD 或 accepts_nested_attributes_for 已足够时不应使用。

限制与边界:始终编写表单测试、校验所有输入、用事务包裹持久化;向多表写入前需先确认;不得跳过校验、绕过模型校验或把业务逻辑放进表单。修改被多个控制器共用的表单前需先确认。

资料还提供 form-patterns.md(基类与四种模式:多模型、嵌套关联、虚拟属性计算、编辑预填充)和 testing-and-views.md(RSpec 规格、控制器用法、含 Stimulus 嵌套表单的 ERB 视图)。