Phoenix Ecto中的验证错误

时间:2016-12-29 10:29:38

标签: elixir phoenix-framework ecto

使用Elixir&凤凰框架在这里。

我有一个注册页面,我在那里验证密码&使用validate_confirmation函数的密码确认字段。

def changeset(model, params \\ %{}) do
    model
    |> cast(params, @required_fields, @optional_fields)
    |> validate_confirmation(:password)
    |> validate_length(:firstName, min: 2)
end

如果我输入了不匹配的密码,我在浏览器中收到错误no function clause matching in Gettext.dngettext/6 - http://imgur.com/a/1uZ3N

在发布此内容之前,我有最新的依赖项。

此处提供完整的堆栈跟踪 - http://pastebin.com/XLKav4cu

我做错了什么?

1 个答案:

答案 0 :(得分:1)

您正在使用Ecto的旧样式语法。您现在需要强制转换,然后传递给validate_required函数

def changeset(model, params \\ %{}) do
    model
    |> cast(params, [list of all fields])
    |> validate_required([list of required fields])
    |> validate_confirmation(:password)
    |> validate_length(:firstName, min: 2)
end

有关详细信息,请参阅https://hexdocs.pm/ecto/Ecto.html#module-changesets