2016-07-02 2 views
0

Wie in Ecto, haben wir Changeset und im Falle ungültiger Changeset können wir Fehler nach Traverse error traversieren. Aber das hat uns eine sehr komplizierte JSON wieExtrahieren von Strings nach dem Traversieren von Fehlern in Ecto Elixir

{ 
    "to_date": [ 
     "can't be blank" 
    ], 
    "title": [ 
     "can't be blank" 
    ], 
    "requested_by": [ 
     "can't be blank" 
    ], 
    "from_date": [ 
     "can't be blank" 
    ], 
    "exid": [ 
     "can't be blank" 
    ] 
    } 

können wir nicht etwas tun, wth, dass in Elixir so können wir die gerade Saiten bekommen wie „Exid darf nicht leer sein“ oder wie ein Objekt

{ 
    to_date: "to_date can't be bank" 
} 

Update: Dies ist das Ergebnis nach Fehlern

%{exid: ["can't be blank"], from_date: ["can't be blank"], 
    requested_by: ["can't be blank"], title: ["can't be blank"], 
    to_date: ["can't be blank"]} 

durchqueren ist es eine Möglichkeit zu bekommen "Exid kann nicht leer sein" von Enum mit?

Antwort

0

Wenn Sie es auf eine Liste von Stiele konvertieren möchten, können Sie so etwas wie:

for {key, values} <- errors, value <- values, do: "#{key} #{value}" 

Demo:

iex(1)> errors = %{exid: ["can't be blank", "can't be something else"], from_date: ["can't be blank"], 
...(1)> requested_by: ["can't be blank"], title: ["can't be blank"], 
...(1)> to_date: ["can't be blank"]} 
%{exid: ["can't be blank", "can't be something else"], 
    from_date: ["can't be blank"], requested_by: ["can't be blank"], 
    title: ["can't be blank"], to_date: ["can't be blank"]} 
iex(2)> for {key, values} <- errors, value <- values, do: "#{key} #{value}" 
["exid can't be blank", "exid can't be something else", 
"from_date can't be blank", "requested_by can't be blank", 
"title can't be blank", "to_date can't be blank"] 
+0

Sie sind genial Dank – ijunaidfarooq

+0

warum Sie Enum entfernt? – ijunaidfarooq

Verwandte Themen