gpt4 book ai didi

elixir - Ecto - 验证相关模型的存在

转载 作者:行者123 更新时间:2023-12-01 11:16:45 26 4
gpt4 key购买 nike

如何验证 Ecto 中相关模型的存在?

schema "foo" do
has_many: bar, Bar

timestamps
end

@required_fields ~w(bar) # invalid

有没有办法这样做?并验证这些字段的最小/最大数量?

最佳答案

还没有什么。但是您可以自己在 changeset 中运行这些验证。功能:

def changeset(model, params) do
model
|> cast(...)
|> validate_bar_association()
end

def validate_bar_association(changeset) do
bar = changeset.model.bar
cond do
bar == nil ->
add_error changeset, :bar, "No bar"
length(bar) < 5 ->
changeset
true ->
add_error changeset, :bar, "waaaay too many"
end
end

我们确实想让嵌套关联更好,但在我们的优先级列表中还有其他更高的项目。 :)

关于elixir - Ecto - 验证相关模型的存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31073275/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com