[RUBY] [Rails] Was ist der Unterschied zwischen Redirect und Rendering?

Einführung

Wissen Sie, was der Unterschied zwischen Umleiten und Rendern ist? Wenn Sie ein Anfänger von Rails sind, verstehen Sie es möglicherweise nicht, deshalb werde ich es kurz erklären.

Das ist der Unterschied

Der Unterschied ist ** ob es durch den Controller geht **. Ich werde den Ablauf jedes Prozesses schreiben.

■ redirect Anfrage senden → Identifizieren Sie Controller und Aktionen durch Routing → Die Aktion in der angegebenen Steuerung funktioniert → Die Ansichtsdatei, die der ausgeführten Aktion entspricht, wird als Antwort angezeigt.

■ render Angezeigte Ansichtsdatei anzeigen

Wie benutzt man es richtig?

Als Beispiel, das Sie häufig sehen, können Sie beim Speichern der veröffentlichten Daten die Umleitung verwenden, wenn das Speichern erfolgreich ist, und das Rendern, wenn das Speichern nicht erfolgreich ist. Lassen Sie uns ein wenig mit einem Codebeispiel erklären.

post_controller


def new
  @post = Post.new
end

def create
  @post = Post.new(post_params)
  if @post.save
    redirect_to root_path
  else
    render "new"
  end
end

Lassen Sie uns die tatsächliche Bewegung im Video sehen Dieses Mal haben wir es validiert, sodass es nur gespeichert werden kann, wenn Sie 5 oder mehr Zeichen eingeben.

81311fb1ec11688f69985b41a2984bc0.gif

Sie können leicht verstehen, dass Sie nach erfolgreichem Speichern einfach zum Stammpfad (Liste der veröffentlichten Daten) wechseln. Wenn das Speichern fehlschlägt, liest das Rendern die neue Ansichtsdatei direkt. Zu diesem Zeitpunkt ist die an die Ansichtsdatei übergebene Instanzvariable (@post) nicht die in der neuen Aktion verwendete, sondern die in der Aktion ** create ** verwendete Instanzvariable (@post), die an die Ansichtsdatei übergeben wird (Postdaten werden gespeichert). Auf diese Weise werden die Eingabedaten beibehalten, wenn die neue Ansichtsdatei angezeigt wird, nachdem das Speichern fehlgeschlagen ist. Wenn Sie die Umleitung verwenden, wenn das Speichern fehlschlägt, wird die neue Aktion geladen und @post wird eine neu erstellte leere Instanz übergeben, sodass die von Ihnen eingegebenen Daten verloren gehen.

Schließlich

Zusätzlich zu dieser Verwendung ist das Rendern eine sehr praktische Methode, die als Teilvorlage oder für die iterative Verarbeitung verwendet werden kann. Wenn Sie es gut verwenden können, werden Sie Spaß am Codieren haben, daher ist es eine gute Idee, sich daran zu erinnern.

Danke, dass du bis zum Ende zugesehen hast!

Recommended Posts

[Rails] Was ist der Unterschied zwischen Redirect und Rendering?
[Rails] Was ist der Unterschied zwischen Bundle-Installation und Bundle-Update?
Was ist der Unterschied zwischen SimpleDateFormat und DateTimeFormatter? ??
Was ist der Unterschied zwischen Systemspezifikation und Funktionsspezifikation?
[JAVA] Was ist der Unterschied zwischen Schnittstelle und Zusammenfassung? ?? ??
Was ist der Unterschied zwischen Überspringen und Ausstehend? [RSpec]
[Rails] Unterschied zwischen redirect_to und Rendern
Was ist der Unterschied zwischen einer Aktion und einer Instanzmethode?
[Rails] Unterschied zwischen redirect_to und render [Anfänger]
Was ist der Unterschied zwischen einem Webserver und einem Anwendungsserver?
[Java] Was ist der Unterschied zwischen Form, Entität und dto? [Bohne]
[Rails / Active Record] Über den Unterschied zwischen create und create!
Unterschied zwischen redirect_to und render
Unterschied zwischen redirect_to und render
Unterschied zwischen render und redirect_to
Unterschied zwischen render und redirect_to
[Rails] Ich habe den Unterschied zwischen Ressourcen und Ressourcen untersucht
[Rails] Unterschied zwischen find und find_by
Über den Unterschied zwischen irb und pry
[Rails] Ich habe den Unterschied zwischen neuer Methode, Speichermethode, Erstellungsmethode und Erstellungsmethode untersucht.
[Java] Verstehe den Unterschied zwischen List und Set
[iOS] Verstehe den Unterschied zwischen Frame und Grenzen
Verstehe den Unterschied zwischen abstrakten Klassen und Schnittstellen!
Unterschied zwischen Mitglied und Sammlung von Schienen route.rb
[Schienen] Unterschied zwischen Erstellungsmethode und neuer + Speichermethode
Unterschied zwischen vh und%
Unterschied zwischen i ++ und ++ i
[Ruby] Ich habe über den Unterschied zwischen each_with_index und each.with_index nachgedacht
[Rails] Fehlermeldung anzeigen - Unterschied zwischen render und redirect_to, flash-
Unterschiede zwischen Klassen und Instanzen in Ruby
Vergleichen Sie den Unterschied zwischen Docker-Datei vor und nach Docker-Slim
[Swift] UITextField hat mir den Unterschied zwischen Null und "" beigebracht.
Gibt es Ende 2017 einen Leistungsunterschied zwischen Oracle JDK und OpenJDK?
Unterschied zwischen Produkt und Variante
Was ist die Zupfmethode?
[Java] Unterschied zwischen == und gleich
Was ist die BufferedReader-Klasse?
Schienen sind schwierig und schmerzhaft!
Unterschied zwischen Variablen und Instanzvariablen
Unterschied zwischen Mockito-Core und Mockito-All
Schienen sind schwierig und schmerzhaft! Ⅱ
Unterschied zwischen Klasse und Instanz
Unterschied zwischen Bundle und Bundle-Installation
Unterschied zwischen ArrayList und LinkedList
Unterschied zwischen List und ArrayList
Unterschied zwischen .bashrc und .bash_profile
Wofür ist der Konstruktor?
Unterschied zwischen StringBuilder und StringBuffer
Was sind Microservices und Microservices Frameworks?