Mar*_*nos 8 elixir ecto phoenix-framework
我想在Ecto.Changeset上设置一个非特定于字段的错误.
在我的情况下,我有一个登录表单,我想设置一个错误,说电子邮件或密码无效.但是我还是想在它们为空时突出显示email或password字段.
在Rails中,您可以通过添加条目来实现errors[:base].在Ecto中有等价物吗?
Dog*_*ert 16
Ecto.Changeset.add_error允许您传递任何原子作为键,它不必是该模型的字段.您可以将错误添加到:base这样:
add_error(changeset, :base, "email or password is invalid")
Run Code Online (Sandbox Code Playgroud)
然后在你的模板中,做到:
<%= error_tag f, :base %>
Run Code Online (Sandbox Code Playgroud)
或(检查是否有错误):
<%= @changeset.errors[:base] %>
Run Code Online (Sandbox Code Playgroud)
您的用例的另一个选项是在:email和两者上添加错误:password
changeset
|> add_error(:email, "email or password is invalid")
|> add_error(:password, "email or password is invalid")
Run Code Online (Sandbox Code Playgroud)