SuperAPI AI 工具集

form-object-patterns

测试与质量

查看项目

更新于 10-15 20:34

技能介绍

用途:在 Rails 8 中创建表单对象,把复杂表单逻辑从 ActiveRecord 模型中抽离,适用于多模型表单(如用户+账户+地址)、搜索/筛选表单(不持久化)、向导/多步表单、虚拟属性校验、API 参数转换、无持久化的联系表单等。单一模型 CRUD 不建议使用。

主要能力:提供 ApplicationForm 基类,包含 ActiveModel::Model、Attributes、Validations,定义 model_name、persisted? 与 save 方法(valid? 后调用 persist!,捕获 ActiveRecord::RecordInvalid 并写入 errors)。给出三类模式:多模型注册表单(属性声明、presence/format/length 校验、密码匹配与邮箱唯一性自定义校验、事务内创建 Account 与 User);搜索/筛选表单(query、event_type、status、start_date、end_date 属性,results 方法链式应用过滤并排序,any_filters? 判断,LIKE 通配符转义);向导/多步表单基类(steps、current_step、first_step?、last_step?、progress_percentage)。

使用方式:按 TDD 流程先写测试(RED),再实现表单对象(GREEN),然后接入控制器(new/create 中使用表单对象,save 成功后重定向,失败 render :new 并返回 unprocessable_entity),视图用 form_with model: @form。控制器通过 params.require(...).permit(...) 传入参数。

限制:资料未提供安装命令、版本依赖、收费或平台信息;示例基于 Rails 8 与 ActiveModel,具体项目需自行适配。