NoD*_*ame 5 elixir phoenix-framework
如何更改必填字段的错误消息?如果我有类似的东西
@required_fields ~w(name email)
Run Code Online (Sandbox Code Playgroud)
我想显示"没有办法是空的",而不是默认值"不能为空"?
此时"can't be blank"错误消息被硬编码到Ecto中.但是,您可以通过执行以下操作替换此错误消息:
def changeset(model, params \\ :empty) do
model
|> cast(params, @required_fields, @optional_fields)
|> required_error_messages("no way it's empty")
end
def required_error_messages(changeset, new_error_message) do
update_in changeset.errors, &Enum.map(&1, fn
{key, "can't be blank"} -> {key, new_error_message}
{_key, _error} = tuple -> tuple
end)
end
Run Code Online (Sandbox Code Playgroud)
希望有所帮助!
小智 6
我通常这样定制:
validate_required(changeset, [:email], message: "Email cannot be blank.")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2096 次 |
| 最近记录: |