使用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
我做错了什么?
答案 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