SuperAPI AI 工具集

ash-phoenix

前端与建站

查看项目

更新于 10-15 21:09

技能介绍

用途:AshPhoenix 用于把 Ash Framework 与 Phoenix 结合,提供 AshPhoenix.Form,让表单直接由 Ash 资源与动作驱动。

主要能力:可创建表单,如 AshPhoenix.Form.for_create(MyApp.Blog.Post, :create) |> to_form(),也可更新已有资源,如 AshPhoenix.Form.for_update(post, :update) |> to_form(),并支持通过 params 传入初始值。域可添加 AshPhoenix 扩展以生成 form_to_* 接口,如 use Ash.Domain, extensions: [AshPhoenix],配合 define 定义动作。表单默认忽略 define 的 args,可在 forms 块中配置位置参数,用于不应在表单中编辑的值(如 user_id)。支持 validate 与 submit 处理:AshPhoenix.Form.validate/2 用于校验,AshPhoenix.Form.submit/2 返回 {:ok, post} 或 {:error, form}。若动作含 manage_relationship,会自动推断嵌套表单,可用 inputs_for 渲染,并用 add_form/2 与 remove_form/2 增删。联合类型表单可在 inputs_for 内根据 _union_type 切换输入,并在 type-changed 事件中先 remove_form 再 add_form。调试可用 raw_errors(form, for_path: :all) 查看全部错误,errors(form, for_path: :all) 查看会显示的错误;错误需实现 AshPhoenix.FormData.Error 协议并设置 field/fields 才会显示,动作级错误可用 flash 提示。

使用方式:在 Phoenix LiveView 中处理 validate 与 submit 事件,维护 assigns 中的 form;更新前用 Ash.load!/2 加载所需关系。

适用场景:面向使用 Ash 资源与 Phoenix LiveView 构建表单、嵌套表单和联合类型输入的 Elixir 项目。

限制:资料未提供安装命令、依赖版本、收费与性能等信息;错误展示依赖协议实现与字段设置。