Ich sende ein Array von Attributen in Parameter zu meinem Controller und ich muss Validierungsfehler behandeln, wenn es einen Fehler beim Erstellen des Datensatzes gibt.Wie erstellt man mehrere Datensätze und behandelt Validierungen mit create-Methode in Rails?
Da ich mehrere Gruppen auf einmal erstellen müssen.
PARAMETER
Parameters: {"group"=>[{"sort_by"=>"id", "template_ids"=>[182], "name"=>"Csdfwses", "count"=>1}, {"sort_by"=>"id", "template_ids"=>[181], "name"=>"rthydrt", "count"=>1}]}
So create
Methode ist mein Controller ist wie folgt:
def create
@groups = Group.create group_params
if @groups
render json: { success: true, message: "#{@groups.length} groups created" }
else
render_422 @groups, 'Could not save groups.'
end
end
i den Fall behandeln will, ob es ein Fehler ist aufgetreten, während jeder Datensatz erstellt, so dass nach dem Erstellen Es sollte die Fehlermeldung anzeigen.
Mit dem obigen Ansatz gibt es keine Möglichkeit error
Methode hier zu verwenden. Wie zeigen Sie die Fehlermeldungen an?
Ich versuchte begin-rescue mit:
def create
begin
@groups = Group.create! group_params
if @groups
render json: { success: true, message: "#{@groups.length} groups created" }
else
render_422 @groups, 'Could not save groups.'
end
rescue ActiveRecord::RecordInvalid => invalid
render json: { success: false, message: "#{invalid.record.errors.messages}" }, status: 500
end
end
aber ich bin für den Reiniger Ansatz suchen, wenn es eine gibt?
Es ist eine ziemlich schlammig Frage, aber ich glaube, er sucht auf einmal mehrere Gruppen Aufzeichnungen zu schaffen - dies würde nur einen einzelnen Datensatz erstellen. – max
Oh du hast Recht. Ich werde es beheben – Dbz
Ja, ich möchte mehrere Gruppen gleichzeitig erstellen. Ich habe versucht, 'rettung ActiveRecord :: RecordInvalid => invalid' zu verwenden und die Meldungen wie folgt anzuzeigen 'render json: {erfolg: false, nachricht:" # {invalid.record.errors.messages} "}, status: 500' –