[RUBY] Verwenden Sie redirect_to und rendern Sie richtig

Überblick

Wenn Sie "Gerüst" in Rails verwenden, sieht die Aktion "Erstellen" folgendermaßen aus: Wenn das Speichern erfolgreich ist, wird "redirect_to" verwendet, und wenn der Seitenübergang fehlschlägt, wird "render" verwendet. Ich werde diesen Unterschied erklären.

user_cocntroller.rb


def create
    @user = User.new(user_params)

    respond_to do |format|
      if @user.save
        format.html { redirect_to @user, notice: 'User was successfully created.' }
        format.json { render :show, status: :created, location: @user }
      else
        format.html { render :new }
        format.json { render json: @user.errors, status: :unprocessable_entity }
      end
    end
  end

Fazit

redirect_to führt eine HTTP-Anforderung aus. Beim Rendern wird nur die Ansicht angezeigt (= URL ändert sich nicht)

Wenn Sie redirect_to verwenden möchten

Wenn die Datenaktualisierung erfolgreich ist, wird eine HTTP-Anforderung ausgeführt, um auf eine andere Seite zu wechseln. Auf diese Weise werden dieselben Daten nicht durch erneutes Laden registriert.

Wenn Sie rendern möchten

Wenn das Speichern fehlschlägt, zeigen Sie die Ansicht einfach mit einer Fehlermeldung an. Vermeiden Sie es, Anfragen unnötig zu erhöhen. Da die Daten nicht registriert wurden, gibt es kein Problem, auch wenn sie neu geladen werden.

Recommended Posts

Verwenden Sie redirect_to und rendern Sie richtig
Kriterien für die ordnungsgemäße Verwendung von render und redirect_to
Ordnungsgemäße Verwendung von Mockito und PowerMock
Richtige Verwendung der Schnittstelle und der abstrakten Klasse
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] Unterschied zwischen redirect_to und Rendern
[Java8] Angemessene Verwendung von Compareable und Comparator unter dem Gesichtspunkt der Mitarbeitersortierung
[Rails] Unterschied zwischen redirect_to und render [Anfänger]
Schienen rendern redirect_to
(In 1 Minute bestimmen) Wie verwende ich leer ?, Leer? Und präsent?
Verwenden Sie doch die for-Anweisung? Verwenden Sie die while-Anweisung? Ordnungsgemäße Verwendung von for-Anweisung und while-Anweisung
Verwendung der Datumsklasse
Verwendung japanischer Schriftarten und Fremdzeichen in Jasper Report
[Rails] Fehlermeldung anzeigen - Unterschied zwischen render und redirect_to, flash-
Bis zur Verwendung von Spring Data und JPA Part 2
Bis zur Verwendung von Spring Data und JPA Part 1
Verwendung von Abstract Class und Interface in Java richtig
Umgang mit Datum und Uhrzeit in Ruby. Verwenden Sie Datum und Uhrzeit richtig.
[Rails] Verschiedene Unterschiede zwischen redirect_to und Render-Methode und Ausgabemethode der Render-Methode
Einrichten von JMeter und jEnv
Hintergrund und Mechanismus des Stoffladers
Zusammenfassung von FileInputStream und BufferedInputStream
Kombination von Suche und jedem_mit_Index
Urteil von JSONArray und JSONObject
Verwenden Sie den schnellen Filter und die Karte
Verwenden Sie @ValueSource von ParametrisedTest von JUnit5
Rest- und Leistungstreiber (冪 Leistung)
Vor- und Nachteile von Java
[Docker-compose] Verwendung unbenannter und benannter Volumes von Volumes. Binden Sie die Halterung
[Rails] Warum wird gerendert, wenn das Speichern erfolgreich ist und redirect_to fehlschlägt?