0

私はそのような状況を持っています:私はUsersテーブルを持っていて、タイプごとにユーザーを分けています:管理者、マネージャー、顧客。

マネージャーは、オーガナイザー モデル (オーガナイザー has_many マネージャー) でのみ作成でき、ネストされたフォームで作成されます。

誰かがすでに登録されている顧客の電子メールでマネージャーを作成しようとしている場合、顧客をマネージャーにアップグレードしたいと考えています。

現在の状況:

顧客の電子メールでマネージャーを作成しようとすると、データベース エラーが表示されます。Customer type -> to -> Manager を変更するための検証を行うことができますが、それでも Manager レコードを保存したいので、明らかに失敗して次のエラーが発生します。

   ActiveRecord::RecordNotUnique:
   PG::Error: ERROR:  duplicate key value violates unique constraint "index_users_on_email"

どうすればこれを正しく処理できますか?

PSここに私のモデルコードがあります:

 class Organizer
 accepts_nested_attributes_for :managers
 has_many :managers
 ___________________

 class Manager < User
 belongs_to :organizer

 ___________________

 class Customer < User
4

1 に答える 1