2016-05-15 13 views
5

Ecto.Changesetでフィールドに固有ではないエラーを設定したいとします。Ectoチェンジセットにグローバルエラーを追加する方法

私の場合、ログインフォームがあり、電子メールまたはパスワードが無効であるというエラーを設定したいと考えています。しかし、私はまだemailまたはpasswordフィールドが空であるときに強調表示したいと思います。

レールでは、errors[:base]にエントリを追加することでそれを行うことができます。 Ectoに相当するものはありますか?

答えて

10

Ecto.Changeset.add_errorは、任意のアトムをキーとして渡すことができますが、そのモデルのフィールドである必要はありません。次のような:baseにエラーを追加することができますいずれか、テンプレート内

add_error(changeset, :base, "email or password is invalid") 

してから実行します。

<%= error_tag f, :base %> 

か(エラーがあるかどうチェックした後):

<%= @changeset.errors[:base] %> 

あなたのユースケースの別の選択肢は、エラーを両方ともに追加することです。:email:password

+0

これを '<%= error_tag @changeset、:base%>に変更しなければなりませんでした。 – flp

関連する問題