如何更改必填字段的错误消息?如果我有那样的东西

@required_fields ~w(name email)

并且我想显示“绝不为空”,而不是默认值“不能为空”?

最佳答案

目前,"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

希望对您有所帮助!

关于elixir - 如何在Phoenix框架中为必填字段添加自定义错误消息,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32032246/

10-16 18:40