1

新しいユーザーにDeviseInvitable(たとえばeagle@gmail.comUserに) 招待状を送信すると、フィールドemail == eagle@gmail.comを持つテーブルに新しいレコードが作成されます。

後で、新しいユーザーとしてサインアップして電子メールeagle@gmail.comを指定しようとすると、次のエラーが表示されますEmail has already been taken

====

私はマルチテナント Web アプリに取り組んでおり、サインアップとは、ユーザーのグループが作業する新しいコンテナーの作成を意味します。グループの管理者は、新しいメンバーを招待できます。ただし、ユーザーは既存のグループへの招待を受け入れたくない場合があり、代わりに自分のグループを作成することにします。しかし、現在、彼のメールアドレスはすでにDBに登録されているため、サインアップできません...

eagle@gmail.comがサインアップする方法はありますか? (招待を拒否したり、メールアドレスを確認して DB からレコードを削除したりする可能性があります)?

4

1 に答える 1

0

次のように登録コントローラーをオーバーライドします。

class RegistrationsController < Devise::RegistrationsController

  def create
    user = User.find_by_email(params[:user][:email])
    if user && user.invitation_token
      user.destroy
    end
    super       
  end
end
于 2016-05-12T15:19:29.993 に答える