我正在为颜色编写一个自定义Ecto.Type
(序列化并解析为CSS颜色(。
该行为指定除非成功,否则cast/1
回调应返回:error
。它不允许返回错误原因,并且在与变更集一起使用时将生成通用的"无效">错误描述。
在无效(不可分类(输入的变更集中允许更好的错误消息的最佳方法是什么?我想创建一个用于变更集的validate_color
函数,但如果转换失败,该字段将已经出现一般错误。
从 Ecto v3.0.0 开始,这是可能的:
返回
{:error, keyword()}
时,返回的关键字列表将保留在变更集错误中,类似于Changeset.add_error/4
。传递:message
密钥将覆盖默认消息。
链接到文档