Dieser Artikel verwendet Ruby 2.6.5, das unter macOS Catalina 10.15.6 installiert ist.
Wir haben drei Modelle erstellt und die Situation ist wie folgt.
Benutzer / Benutzer Bericht / Bericht Zuordnungstabelle für Kommentar / Benutzerbericht
Der folgende Fehler ist beim Löschen eines Berichts mit Kommentaren aufgetreten.
ActiveRecord::InvalidForeignKey in ReportsController#destroy Externer Schlüsselfehler
Denken Sie über die Lösung der Ursache nach.
Beim Löschen eines Berichts wird festgestellt, dass der Benutzer in der Kommentartabelle und der ID-Wert des Berichts verloren gehen. (Aufgrund externer Schlüsselbeschränkungen) Ich möchte Kommentare löschen können, wenn der Benutzer und die Berichts-ID nicht mehr verknüpft sind.
dependent: :Beschreiben Sie die Zerstörung im Benutzermodell und im Berichtsmodell.
Mit dieser Beschreibung können Sie beim Löschen des übergeordneten Modells (Bericht) auch das dem übergeordneten Modell zugeordnete "untergeordnete Modell (Kommentar)" löschen.
## Überprüfung
#### **`app/models/user.rb`**
```ruby
class User < ApplicationRecord
has_many :reports
has_many :comments, dependent: :destroy
end
app/models/report.rb
class Report < ApplicationRecord
belongs_to :user
has_many :comments, dependent: :destroy
end
Ohne Zwischenfall abgeschlossen! das ist alles. Ich hoffe, es hilft denen, die ähnliche Probleme haben oder gegen eine Wand stoßen!
Ich habe mich auf Folgendes bezogen. Wenn Sie den Inhalt besser verstehen möchten, schauen Sie bitte! https://qiita.com/Ushinji/items/650fa295a3054d2fe582 https://qiita.com/ITmanbow/items/2170ccaceafd5d401df8 https://qiita.com/Tsh-43879562/items/fbc968453a7063776637
Recommended Posts