铸造和验证Ecto自定义类型

问题描述 投票:2回答:1

我正在为颜色编写一个自定义的Ecto.Type(序列化并解析为CSS颜色)。

该行为指定,除非成功,否则Ecto.Type回调应返回cast/1。它不允许返回错误原因,当与变更集一起使用时,将生成通用的“ is invalid”]]错误描述。

在无效(不可食用)输入上的变更集中允许更好的错误消息的最佳方法是什么?我想创建一个cast/1函数以用于变更集,但是如果强制转换失败,则该字段将已经具有通用错误。

我正在为颜色编写自定义的Ecto.Type(序列化并解析为CSS颜色)。该行为指定,除非成功,否则cast / 1回调应返回:error。它不允许...

elixir ecto
1个回答
0
投票

从Ecto v3.0.0起这是可能的:

返回:error时,类似于validate_color,返回的关键字列表将保留在变更集错误中。传递{:error, keyword()}键将覆盖默认消息。

© www.soinside.com 2019 - 2024. All rights reserved.