[GO] So spiegeln Sie Validierungsfehler und Eingabeinhalte auf der vorherigen Seite wider, ohne Rendering in der Aktion zu verwenden

Einführung

Wenn Sie beim Senden von Formularinhalten in der Validierung stecken bleiben Rendern Sie den neuen Post-Bildschirm mit der Render-Methode Es sollte viele Leute geben, die gelernt haben, indem sie den Fehler oder den eingegebenen Inhalt angezeigt haben

Aber was ist, wenn Sie die Render-Methode nicht verwenden können? Eigentlich verwende ich die Google Map-API für das Portfolio, an dem ich arbeite. Beim Rendern einer Seite mit "Rendern" tritt das Problem auf, dass MAP aus irgendeinem Grund nicht angezeigt wird ...

Es war ein Problem, das durch Ändern der Spezifikationen gelöst werden konnte, aber ich wollte es nicht ändern. Ich werde Ihnen zeigen, wie Sie die obige Bewegung erreichen, ohne "Rendern" zu verwenden.

Normalerweise bei Verwendung von Render

Als Beispiel in task_controller.rb Neue Post-Page-Aktion new und Angenommen, Sie haben eine Aktion "Erstellen", mit der ein neuer Beitrag gespeichert wird.

tasks_controller.rb



def create
  @task = Task.new(task_params)
  if @task.save
    redirect_to @task, notice: 'Sie haben die Aufgabe gespeichert.'
  else
    render :new
  end
end

@ task.save schlägt fehl und render: new unter else wird ausgeführt, Die neue Beitragsseite wird gerendert. Wie Sie bereits wissen, haben Sie danach das Gefühl, "@ task.errors.full_messages" in der Ansicht zu verwenden.

Wenn Sie nicht rendern

Dies erfolgt in Form eines erneuten Zugriffs mit "redirect_to" Fehleranweisungen und Eingabeinhalte werden in der Aktion in "flash" gespeichert.

tasks_controller.rb



def create
  @task = Task.new(task_params)
  if @task.save
    redirect_to @task, notice: 'Sie haben die Aufgabe gespeichert.'
  else
    flash[:error_msgs] = @task.errors.full_messages
    flash[:tmp_body] = @task.body
    redirect_to new_task_url
  end
end

Eine Fehleranweisung in flash [: error_msgs] Der Textinhalt wird in flash [: tmp_body] gespeichert.

Danach ist es in Ordnung, wenn Sie den Wert flash in der Zugriffszielansicht verwenden. das ist alles!

Recommended Posts

So spiegeln Sie Validierungsfehler und Eingabeinhalte auf der vorherigen Seite wider, ohne Rendering in der Aktion zu verwenden
Kopieren und Einfügen des Inhalts eines Blattes im JSON-Format mit einer Google-Tabelle (mithilfe von Google Colab)
Wie klicke ich mit der rechten Maustaste über die Tastatureingabe in RPA?
[Super einfach! ] So zeigen Sie den Inhalt von Wörterbüchern und Listen einschließlich Japanisch in Python an
So generieren Sie eine Abfrage mit dem IN-Operator in Django
So erhalten Sie alle Schlüssel und Werte im Wörterbuch
Hinweise zur Verwendung von Marshmallow in der Schemabibliothek
Kopieren und Einfügen von Befehlszeileninhalten mit bash unter Linux oder Mac ohne Maus
So geben Sie die im Django-Modell enthaltenen Daten im JSON-Format zurück und ordnen sie der Broschüre zu
So geben Sie beim Testen absichtlich einen Fehler in der Shell aus
So installieren Sie OpenCV in Cloud9 und führen es in Python aus
Geben und meinen Sie die Einschränkungsoption in scipy.optimize.minimize
So erhalten Sie mithilfe der Mastodon-API Follower und Follower von Python
[EC2] So installieren Sie Chrome und den Inhalt jedes Befehls
So stellen Sie fest, dass in Python3 ein Kreuzschlüssel eingegeben wurde
[TensorFlow 2] So überprüfen Sie den Inhalt von Tensor im Diagrammmodus
Verwendung der in .mako (.html) direkt in mako definierten Renderfunktion
So zeigen Sie Bytes in Java und Python auf die gleiche Weise an
So geben Sie eine Zeichenfolge in Python ein und geben sie unverändert oder in die entgegengesetzte Richtung aus.
Wie man CSS in Django reflektiert
Teilen und Verarbeiten eines Datenrahmens mithilfe der Groupby-Funktion
So ermitteln Sie die Anzahl der CPUs ohne den Befehl sar
So ermitteln Sie mit Python den Unterschied zwischen Datum und Uhrzeit in Sekunden
So vergleichen Sie, ob der Inhalt der Objekte in scipy.sparse.csr_matrix identisch ist
So beseitigen Sie Conda-Aktivierungsfehler, ohne die Änderungen der Ausführungsrichtlinien zu stören
TLE schien beängstigend zu sein, je nachdem, wie die Eingabe empfangen wurde