Optionale POST-Parameter in Elixir Phoenix

7

Ich habe eine Phönixroute, an die ich einige Formulardaten senden möchte, jedoch gibt es etwa 4 Felder des Formulars, die optional sind (das Formular wird vom Endbenutzer erstellt und daher sind diese Felder möglicherweise nicht in der POST-Nutzlast vorhanden) )

Wie würden Sie im Phoenix Controller für die Route damit umgehen?

Zum Beispiel:

Mein Formular hat

%Vor%

Und POST das Formular muss immer Field1 und Field2 , aber kann eine beliebige Kombination der anderen Felder haben.

so ist mein Controller-Code so:

%Vor%

Wie mache ich die anderen 3 optional? Wenn ich sie alle addiere, werden sie benötigt und ich möchte nicht für jedes der möglichen eingereichten Formulare eine Funktion ausführen müssen, da es übertrieben erscheint.

    
TheStoneFox 07.06.2015, 12:54
quelle

1 Antwort

19

Die vom Controller empfangenen Parameter sind nur eine Karte, also suchen Sie wahrscheinlich nach etwas wie Map.get/3 . Mit dieser Funktion können Sie in diesen Zeilen etwas tun:

%Vor%

Sie können auch eine Zuordnung erstellen, die alle Standardwerte für die optionalen Parameter enthält, und dann Map.merge/2 :

%Vor%     
whatyouhide 07.06.2015, 13:08
quelle

Tags und Links