5
我想在不特定于某个字段的Ecto.Changeset上设置错误。如何将全局错误添加到Ecto更改集
在我的情况下,我有一个登录表单,我想设置一个错误,说明电子邮件或密码无效。但是,我仍然想在空白处突出显示email
或password
字段。
在Rails中,您可以通过在errors[:base]
中添加一个条目来实现。 Ecto中是否有等价物?
我想在不特定于某个字段的Ecto.Changeset上设置错误。如何将全局错误添加到Ecto更改集
在我的情况下,我有一个登录表单,我想设置一个错误,说明电子邮件或密码无效。但是,我仍然想在空白处突出显示email
或password
字段。
在Rails中,您可以通过在errors[:base]
中添加一个条目来实现。 Ecto中是否有等价物?
Ecto.Changeset.add_error
允许您传递任何原子作为键,它不一定是该模型的字段。您可以将错误添加到:base
这样的:
add_error(changeset, :base, "email or password is invalid")
,然后在你的模板,无论是做:
<%= error_tag f, :base %>
或(检查是否有错误之后):
<%= @changeset.errors[:base] %>
您的用例的另一个选项是在:email
和:password
之间添加错误
changeset
|> add_error(:email, "email or password is invalid")
|> add_error(:password, "email or password is invalid")
我不得不将它更改为'<%= error_tag @changeset,:base%> – flp