【发布时间】:2017-03-29 00:05:01
【问题描述】:
我有一个要在变更集中进行验证的配置映射。配置有多个键,每个键都有一些约束。
当接收到数据时,我可以为它们中的每一个运行一个验证器,但这迫使我编写很多可以更智能地完成的代码,所以我正在运行一个循环并尝试收集所有失败的验证,而不是运行它们一个减一。
defp validate_config_flags(changeset) do
config = get_field(changeset, :config)
for {k, v} <- config do
if !Map.has_key?(@config_flags, k) || !validate_config_flag(k, v) do
add_error(changeset, :"#{k}", "Invalid value for `#{k}`")
end
end
changeset
end
Obv 我的问题是我返回changeset,即使某些字段失败并且我的问题与此有关。如何在结果中添加多个错误消息/验证失败,而不是在第一个 add_error 以某种方式返回?
【问题讨论】:
标签: elixir phoenix-framework ecto