[Ruby On Rails] Notfallmaßnahmen, wenn redirect_to action :: show nicht zum Erstellen von Aktionen und zum Zerstören von Aktionen verwendet werden kann (kann)

Es ist ein Memorandum. Vielen Dank für das Surfen. Da es sich um eine Skizze handelt, weisen Sie bitte auf Fehler in der Erklärung oder Beschreibung hin.

Hintergrund

Ich habe gelernt, dass Sie eine Aktion in diesem Controller aufrufen und ausführen können, indem Sie den Namen action :: action in redirect_to angeben.

Aus diesem Wissen heraus konnte ich die Show-Aktion umleiten, indem ich redirect_to action :: show schrieb, als sie aktualisiert wurde (dh als die Bearbeitung aktualisiert wurde).

  def update
    if @hoge.update(hoge_params)
      redirect_to action: :show
    else
      render :edit
    end
  end

Problem

Bei den Aktionen zum Erstellen und Zerstören gab redirect_to action :: show jedoch einen Fehler aus.

  def create
    @hoge = Hoge.new(hoge_params)
    if @hoge.save
      redirect_to action: :show
    else
      render :new
    end
  end

(Weggelassen)

  def destroy
    if @hoge.destroy
      redirect_to action: :show
    else
      render :show
    end
  end

Fehleranweisung

ActionController::UrlGenerationError in HogesController#create
No route matches {:action=>"show", :controller=>"hoges"}

Gegenmaßnahmen

Ich suchte nach Routen mit Schienenrouten, beschrieb den Präfixpfad und übergab den Schlüssel bei Bedarf.

  def create
    @hoge = Hoge.new(hoge_params)
    if @hoge.save
      redirect_to hoge_path(current_user.id)
    else
      render :new
    end
  end

(Weggelassen)

  def destroy
    if @hoge.destroy
      redirect_to hoge_path(current_user.id)
    else
      render :show
    end
  end

Auf diese Weise war es möglich, zum gleichen Bildschirm wie show zu wechseln, wenn mit der Aktion create eine neue erstellt oder mit der Aktion destroy gelöscht wurde.

* Wir glauben, dass die oben genannten Maßnahmen nur Problemumgehungen für Notfälle sind. (Weil ich nicht lerne)

Dinge, die man in Zukunft lernen sollte

Um den Ablauf der Verarbeitung verstehen zu können, warum und warum die action :: show nicht umgeleitet werden konnte.

Recommended Posts

[Ruby On Rails] Notfallmaßnahmen, wenn redirect_to action :: show nicht zum Erstellen von Aktionen und zum Zerstören von Aktionen verwendet werden kann (kann)
Ruby on Rails 5 - Kurzanleitung zum Lernen, die im Feld Zusammenfassung verwendet werden kann
Dinge, an die Sie sich erinnern sollten, und Konzepte im Ruby on Rails-Tutorial
Anfänger haben mit Ruby on Rails ein Portfolio erstellt
[Rails] "Pry-Rails", die beim Speichern mit der create-Methode verwendet werden können
Cloud-IDE: Heroku konnte nicht im Ruby on Rails-Tutorial installiert werden
Wenn das Ruby on Rails-Terminal zurückrollt
[Rails] Rückrufe, die mit den Bedingungen von on :: action festgelegt wurden, können mit skip_callback und set_callback nicht vermieden werden.
(Ruby on Rails6) So erstellen Sie ein Modell und eine Tabelle
[Ruby on Rails] Zeigt den Seitentitel schnell im Browser an
[Ruby on Rails] Verwenden Sie Cookies und zeigen Sie sie beim ersten Zugriff nur einmal an (mit jquery.cookie.js).
Die auf EC2 bereitgestellte CSS in Rails-App von React.js kann nicht geladen werden
Wenn Tomcat in Eclipse gestartet wird, wird "ClassNotFoundException" angezeigt und kann nicht gestartet werden.
(Ruby on Rails6) Erstellen einer Datenbank und Anzeigen in einer Ansicht
Ich habe den Ablauf bis zur Implementierung von simple_calendar in Ruby on Rails zusammengefasst.
(Ruby on Rails6) Erstellen Sie eine Funktion zum Bearbeiten des veröffentlichten Inhalts
[Ruby on Rails] So melden Sie sich nur mit Ihrem Namen und Passwort mit dem Gem-Gerät an
[Ruby on Rails] Beim ersten Anmelden ・ So teilen Sie den Bildschirm mit jQuery in zwei Hälften
Mit Pg_resetwal kann der PostgreSQL Docker-Container gestartet werden, wenn WAL fehlerhaft ist und nicht gestartet werden kann.
Führen Sie den Befehl Rails Server unter Windows 10, Ruby2.6.6 aus und erhalten Sie "Kann eine solche Datei nicht laden --sqlite3 / sqlite3_native".
Ruby on Rails Japanisch-Englisch kompatibler i18n
Misst, wenn kein Modell erstellt werden kann
Ruby-Methoden, die häufig in Rails verwendet werden
So erstellen Sie eine Abfrage mithilfe von Variablen in GraphQL [Verwenden von Ruby on Rails]
Was tun, wenn blockierter Host: "Hostname" in Ruby on Rails angezeigt wird
So debuggen Sie die Verarbeitung im Ruby on Rails-Modell nur mit der Konsole
Ruby on Rails Wenn Sie die Ursache für das Zurücksetzen beim Speichern nicht kennen.
Überprüfen Sie mithilfe des Remote-Containers von VSCode, ob Sie vom Host in der Docker-Umgebung Laravel on nicht auf den Container zugreifen können.
Wenn Sie einem Argument in einer Ruby-Methode neu zuweisen und dann "super" aufrufen → Das neu zugewiesene wird verwendet