我正在将 Omniauth 和 Devise 集成到我的第一个 ruby on rails 应用程序中。目前在谷歌工作。
它有效,我喜欢这一切。我可以通过点击我的应用程序中的链接成功注册,在谷歌中进行身份验证,然后重定向回来......一切都符合预期。
我需要支持当前用户邀请新用户一起开展项目。为此,我允许当前用户创建新用户行,并指定新用户的电子邮件地址。该行作为存根添加,因此可以将工作分配给新用户。
我希望新用户在此之后的某个时候通过单击我的应用程序中的 google 链接、在 google 中进行身份验证,然后重定向回我的应用程序来注册。
发生这种情况时,我收到此错误:
1 error prohibited this user from being saved:
Email has already been taken
我理解为什么,但我正在努力寻找我可以&应该使用的正确钩子来改变行为,以允许注册用户接管为他创建的存根用户行。
编辑: 相关宝石列表(我认为):
- devise (2.2.3)
- oauth (0.4.7)
- oauth2 (0.8.1)
- omniauth (1.1.3)
- omniauth-facebook (1.4.1, 1.4.0)
- omniauth-google (1.0.2)
- omniauth-google-oauth2 (0.1.13)
- omniauth-oauth (1.0.1)
- omniauth-oauth2 (1.1.1, 1.0.3)
编辑 - 设计模块
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable, :omniauthable