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