Ich habe eine Situation, in der ich create in activeadmin überschreiben muss. Ich fülle automatisch die Felder aus und wenn die Daten bereits existieren, sollte sie sich aktualisieren ansonsten erstellen. Hier ist meine create-Methode:So zeigen Sie Fehler in ActiveAdmin-Formularen nach dem Überschreiben der Steuerung an
def create
id = params[:company].dig(:id)
if id.present?
@company = Company.find(id)
if @company.update(permitted_params[:company])
redirect_to resource_url
flash[:notice] = 'Company created successfully'
else
#add errors to semantic errors
end
else
new_permitted_params = permitted_params[:company].except(:id)
@company = Company.new(new_permitted_params)
@company.save
if @company.errors.any?
#add this to semantic errors so that activeadmin handles and displays the errors
end
end
end
Ich möchte die Fehler angezeigt werden, die die Validierungen verletzen, so dass der Benutzer weiß, ob er/sie einen ungültigen Eintrag eingegeben hat.
Ich fand this, aber es sieht wie ein Workaround mehr als eine Lösung aus. Bitte hilf mir, das zu lösen.
Vielen Dank im Voraus.
Lassen Sie mich Ihnen erklären, warum ich das gemacht habe. Ich habe die automatische Vervollständigung in diesem Formular angewendet und setze alle Felder mit den Daten, die ich erhalte, fest. Hier kommt die Logik ins Spiel. Wenn ID gesetzt ist (was nicht wäre, wenn ich bei der automatischen Vervollständigung kein Objekt ausgewählt hätte), dann aktualisiere sonst create. – UsamaMan