1

DeviseInvitable当我通过(例如eagle@gmail.com )向新用户发送邀请时,会在User表中创建一条新记录,其中包含email == eagle@gmail.com字段。

后来,当我尝试以新用户身份注册并指定电子邮件eagle@gmail.com 时,我收到一个错误:Email has already been taken.

====

我在一个多租户 Web 应用程序上工作,其中注册意味着创建一组用户将在其中工作的新容器。群组管理员可以邀请新成员加入。但是用户可能不希望接受现有组的邀请,而是决定创建自己的组。但目前他无法注册,因为他的电子邮件地址已经在数据库中......

eagle@gmail.com有没有办法仍然注册?(也许通过确认他的电子邮件地址来拒绝邀请或从数据库中删除他的记录)?

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 回答