gpt4 book ai didi

elixir - 如何在phoenix框架中将自定义验证规则应用于模型

转载 作者:行者123 更新时间:2023-12-04 13:58:30 25 4
gpt4 key购买 nike

我想在我的ecto模型中添加一个自定义验证规则。

假设我有以下代码:

  def changeset(model, params \\ :empty) do
model
|> cast(params, @required_fields, @optional_fields)
|> validate_length(:description, min: 280)
|> my_awesome_validation(:email)
end

def my_awesome_validation(email) do
# ??
end

我应该在 my_awesome_validation 函数中写什么来引发错误等?

最佳答案

传递给my_awesome_validation的方式是,将changeset作为第一个参数,将原子:email作为第二个参数。

这是您如何验证给定字段是否至少包含一个@:

def my_awesome_validation(changeset, field) do 
value = get_field(changeset, field)
if value =~ "@" do
changeset
else
add_error(changeset, field, "does not contain '@'")
end
end

关于elixir - 如何在phoenix框架中将自定义验证规则应用于模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36961176/

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