[RUBY] So löschen Sie untergeordnete Elemente, die gleichzeitig einem übergeordneten Element zugeordnet sind

In Bezug auf die Löschfunktion des Überprüfungsmodells in Rails funktionierte es ursprünglich ohne Probleme, aber nach der Implementierung des Kommentarmodells ist ein Fehler aufgetreten. Ich werde es teilen, weil die Ursache geklärt wurde.

Entwicklungsumgebung

Ruby 2.6.5 Rails 6.0.3.3

Implementierungsdetails, wenn ein Problem auftritt

Das Routing ist mit reveiw als übergeordnetem Element und comment als untergeordnetem Element verschachtelt.

config/routes.rb


resources :reviews do
    resources :comments, only: [:create, :destroy] 
end

Es wurde implementiert, damit die Überprüfung gelöscht wird. Bevor der Kommentar implementiert wurde, konnte er unverändert gelöscht werden.

views/reviews/show.html.erb


<%= link_to review_path(id: @review.id), method: :delete do %>
    <div>Bewertung löschen</div>
    <div>Sie können die Bewertung hier löschen.</div>
<% end %>

Änderungsort

Da wir den Kommentar als untergeordnetes Element der Überprüfung implementiert haben, müssen wir ihn so implementieren, dass der Kommentar gleichzeitig mit dem Löschen der Überprüfung gelöscht wird. Ändern Sie daher models / review.rb wie folgt.

models/review.rb


has_many :comments

↓↓↓

models/review.rb


has_many :comments, dependent: :destroy

Die Implementierung der Löschfunktion ist hier abgeschlossen.

Referenz

https://qiita.com/Tsh-43879562/items/fbc968453a7063776637

Recommended Posts

So löschen Sie untergeordnete Elemente, die gleichzeitig einem übergeordneten Element zugeordnet sind
So löschen Sie den dem Benutzer zugeordneten Tweet, wenn Sie ihn gleichzeitig löschen
Zeichnen Sie mit MPAndroidChart gleichzeitig Balkendiagramm und Liniendiagramm
So löschen Sie benutzerdefinierte Adapterelemente mithilfe eines benutzerdefinierten Modells
[Docker] Löschen Sie nur das Volume, das einem bestimmten Container zugeordnet ist
So fügen Sie dieselben Indizes in ein verschachteltes Array ein
Verwendung von MinIO mit derselben Funktion wie S3 Verwenden Sie Docker-Compose
So rufen Sie mehrere Namen gleichzeitig in derselben Kategorie auf
So interagieren Sie mit einem Server, der die App nicht zum Absturz bringt
So überprüfen Sie, bevor Sie mit Spring Integration eine Nachricht an den Server senden
Wie man nur die Zeit mit Rails vergleicht (von welcher Zeit bis zu welcher Zeit, so etwas wie)
So ändern Sie den Wert einer Variablen an einem Haltepunkt in IntelliJ
So implementieren Sie die E-Mail-Authentifizierungsfunktion zum Zeitpunkt der Benutzerregistrierung
[Java] So stellen Sie die Datums- und Uhrzeit auf 00:00:00 ein
So löschen Sie Daten mit einem externen Schlüssel
So erhalten Sie die ID eines Benutzers, der sich in Swift bei Firebase authentifiziert hat
So speichern Sie gleichzeitig Daten in einem Modell, das einem verschachtelten Formular zugeordnet ist (Rails 6.0.0)
[Ruby] Definieren Sie die Hierarchie gleichzeitig mit der Initialisierung von Hash mit der Tap-Methode
So löschen Sie einen Controller usw. mit einem Befehl
Stellen Sie die Zeit von LocalDateTime auf eine bestimmte Zeit ein
So löschen Sie die Datenbank beim Neuerstellen der App
(Java) Implementieren von equals () für eine Klasse mit durch Vererbung hinzugefügten Wertelementen
Speichern von Dateien mit der angegebenen Erweiterung unter dem in Java angegebenen Verzeichnis in der Liste
[Docker] So sehen Sie den Inhalt von Volumes. Starten Sie einen Container mit Root-Rechten.
Vorläufiges Memo beim Erstellen der CentOS 6-Serie mit VirtualBox
So ändern Sie die Aktion mit mehreren Senden-Schaltflächen
So löschen / aktualisieren Sie das Listenfeld von OneToMany
So stellen Sie die Anzeigezeit in Rails auf japanische Zeit ein
So führen Sie die SpringBoot-App als Dienst aus
Organisierte schrittweise Interaktion mit dem JDK
[So fügen Sie ein Video mit Rails in haml ein]
So löschen Sie mit Docker Bilder ohne Tags in großen Mengen
Wie erstelle ich einen MOD für Slay the Spire?
So aktivieren Sie die Senden-Schaltfläche jedes Mal mit jquery
[Java] So unterbrechen Sie eine Zeile mit StringBuilder
Ich möchte der Kommentarfunktion eine Löschfunktion hinzufügen
Wie man Kotlin zum ersten Mal studiert ~ Teil 2 ~
Wie man Kotlin zum ersten Mal studiert ~ Teil 1 ~
Verwendung derselben Mapper-Klasse in mehreren Datenquellen mit Spring Boot + MyBatis
Implementierungsmethode zum Verknüpfen mehrerer Bilder mit einem Beitrag und zum gleichzeitigen Posten
So reduzieren Sie die Programmlast ein wenig, wenn Sie Zeichen mit JAVA kombinieren
Gibt an, ob die Serverseite zum Zeitpunkt der Systemwiederherstellung mit Kotlin oder Java erstellt werden soll
Warten auf JMX-Verbindung bei 18080 Stellen Sie von einem lokalen Computer aus gleichzeitig eine Verbindung zu mehreren Java-Anwendungsservern über die Plattform her