Ich habe 2 Tabellen:Ecto verwiesen löschen Datenbank-Datensatz
Benutzer:
id
username
password
unique_index username
(the schema has a has_many other)
andere:
id
user_id - references(:users)
foo
index user_id
(the schema has a belongs_to user)
im changeset für "Andere" Ich habe dieses
model
|> cast(params, @req, @opt)
|> foreign_key_constraint(:user_id)
an dieser Stelle Meine Vermutung war das „Andere“ Ecto-Modell eines „User“ erfordert damit verbunden werden, um zu existieren (das ist, was ich will)
Aber meine zweite Annahme war, wenn ich die „User“ lösche dann werden alle verknüpften "Anderen" Datensätze gelöscht (über ein Cascade Löschen)
Was eigentlich passiert ist, dass ich einen Ecto.ConstraintError habe, wenn ich versuche einen "User" Datensatz zu löschen (ich nehme an, da ist ein " Anderer "Datensatz, der mit diesem Benutzer verbunden ist"
Also, wie würde ich gehen, damit es so funktioniert, wie ich will, was ist:
- A „Benutzer“ kann standalone erstellt werden
- Eine „andere“ erstellt werden kann, sondern auf einen „user“
- Wenn eine „andere“ gestrichen beeinflussen es nichts anderes angehören
- Wenn ein „Benutzer“ gelöscht wird es löscht alle zugehörigen „andere“ Aufzeichnungen zu
Wesentliches für alle Elemente auf dem Benutzer ein Cascade löschen, die es
Arbeiten auf many-to-many zu –