Hallo, aus irgendeinem Grund, frag nicht warum, befinde ich mich gerade in folgender Situation:
Ich habe als Admin drei E-Mail-Adressen hinterlegt:
Primär: die korrekte Adresse
Sekundär: dieselbe Adresse, aber unbestätigt
Dritte: eine wirklich andere sekundäre Adresse, die bestätigt ist.
Wenn ich die Rails-Konsole öffne, kann ich die Benutzer-ID nachschlagen, weiß aber nicht, wie ich die mehreren alternativen E-Mail-Adressen auflisten und eine davon entfernen kann. Über die UI funktioniert das wahrscheinlich nicht, weil die E-Mail-Adressen identisch sind.
Hallo, ja, genau das versuche ich zu erreichen. In der Konsole kann ich den Benutzer nachschlagen. Aber wie ich dann nach mehreren E-Mail-Adressen abfragen und die Duplikate entfernen kann, weiß ich nicht.
Wenn ich den Benutzer auswähle, sehe ich die E-Mails nicht; sie müssen sich in einem anderen Datensatz befinden.
Die E-Mail-Adressen befinden sich in der Tabelle user_emails. Sie können sie mit der ID des Benutzers finden:
UserEmail.where(user_id: <user_id>)
Ersetzen Sie <user_id> im obigen Befehl durch die ID des Benutzers.
Suchen Sie den id-Wert des UserEmail-Datensatzes, den Sie entfernen möchten. Mit dieser ID führen Sie Folgendes aus, um den einzelnen Datensatz zurückzugeben, den Sie entfernen möchten:
Überprüfen Sie das zurückgegebene Ergebnis noch einmal, um zu bestätigen, dass es sich um die E-Mail handelt, die Sie entfernen möchten. Führen Sie dann Folgendes aus:
identical_email.destroy
Bevor Sie von der Konsole aus zerstörende Befehle ausführen, ist es ratsam, ein Backup der Datenbank Ihrer Site zu erstellen. Falls etwas schiefgeht, können Sie das Backup wiederherstellen.
Vielen Dank! Wie sich herausstellte, konnte ich für die Duplikate nur eine E-Mail-ID abrufen. Ich vermute, die unbestätigte Adresse, die ich nicht entfernen konnte, war noch nicht mit dieser ID verknüpft? Vermutlich hängt sie in der Schwebe, weil der Validierungsprozess unvollständig war?
Um das Problem zu lösen, habe ich die primäre Adresse auf eine der beiden alternativen E-Mail-Adressen umgestellt. Die unbestätigte Duplikatadresse ließ sich zwar immer noch nicht löschen, aber als ich die bestätigte (nun ehemalige primäre) E-Mail-Adresse löschte, wurde auch die unbestätigte Duplikatadresse entfernt.
Anschließend habe ich die ursprüngliche E-Mail-Adresse als sekundäre Adresse hinzugefügt und dann wieder zur primären Adresse umgestellt.
Alles ist nun geklärt, und ich habe dabei viel gelernt