こんにちは。なぜそうなったかはともかく、今私は以下の状況に陥っています:
管理者として、以下の3つのメールアドレスが登録されています:
- プライマリ:正しいもの
- セカンダリ1:同じものだが未確認
- セカンダリ2:実際に異なる別のアドレスで確認済み
Rails コンソールでユーザーIDは確認できますが、複数の代替メールアドレスを一覧表示したり、その中から1つを削除する方法がわかりません。UIからはおそらくメールアドレスが同一であるため操作できないようです。
この問題を修正するにはどうすればよいでしょうか?
osioke
(Osioke Itseuwa)
2
Rails コンソールからメールアドレスを無効化してみましたか?今のところ、そのコマンドを思い出せません。
こんにちは、はい、まさに私がやろうとしていることです。コンソールではユーザーを検索できますが、その後、複数のメールアドレスを照会して重複を削除する方法がわかりません。
ユーザーを選択してもメールアドレスが表示されないため、別のレコードにあるはずです。
Koen
simon
4
メールアドレスは user_emails テーブルに格納されています。ユーザーの ID を使用して取得できます。
UserEmail.where(user_id: <user_id>)
上記のコマンド内の <user_id> を実際のユーザー ID に置き換えてください。
削除したい UserEmail レコードの id 値を取得します。その ID を用いて以下のコマンドを実行し、削除対象の個別レコードを取得します。
identical_email = UserEmail.find(<identical_email_id>)
返された結果を必ず確認し、削除したいメールアドレスであることを確認してください。その後、以下を実行します。
identical_email.destroy
コンソールから破壊的なコマンドを実行する前に、サイトのデータベースのバックアップを作成しておくことをお勧めします。何か問題が発生した場合、バックアップから復元できます。
「いいね!」 1
どうもありがとうございます。結果として、重複しているメールアドレスのIDは1つしか取得できませんでした。おそらく、削除できなかった未確認のアドレスは、まだそのIDでリストに反映されていなかったのでしょう?検証プロセスが不完全な状態で、状況が少し曖昧だったのかもしれません。
私が取った解決策は、プライマリを2つの代替メールアドレスのどちらかに切り替えることでした。それでも未確認の重複アドレスは削除できませんでしたが、確認済みのアドレス(現在はプライマリではなくなったメール)を削除すると、未確認の重複アドレスも同時に削除されました。
その後、元のメールアドレスをセカンダリとして追加し、それをプライマリに切り替えました。
すべて解決し、その過程で多くのことを学びました 
「いいね!」 1
system
(system)
クローズされました:
6
This topic was automatically closed 0 minutes after the last reply. New replies are no longer allowed.