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.
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
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.
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.
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