如何将自定义验证规则应用于 phoenix 框架中的模型
How to apply a custom validation rule to a model in phoenix framework
我想在我的 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
我想在我的 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