我想手动创建新的User
用户,而不强制要求他们验证电子邮件地址。
这个想法是允许现有用户自动添加他们的朋友,而不需要他们进行注册。这对我正在解决的业务案例是有意义的。
如何使用Devise实现这一点?
我想手动创建新的User
用户,而不强制要求他们验证电子邮件地址。
这个想法是允许现有用户自动添加他们的朋友,而不需要他们进行注册。这对我正在解决的业务案例是有意义的。
如何使用Devise实现这一点?
skip_confirmation!
方法适用于任何 confirmable
模型。
@user = User.new params[:user]
@user.skip_confirmation! # Sets confirmed_at to Time.now, activating the account
@user.save
用户账户将被激活。如果您不希望这样,请继续阅读。
Devise使用条件回调来生成确认令牌并发送电子邮件。只有在 confirmation_required?
返回true
的情况下才会调用回调函数。请在您的模型上重新定义它:
def confirmation_required?
false
end
然而,这将使active_for_authentication?
方法始终返回true,因为它考虑到是否需要确认。我们还必须重新定义该方法:
def active_for_authentication?
confirmed? || confirmation_period_valid?
end
这样做,账户将保持未激活状态,不会发送任何确认电子邮件。您需要通过在记录上调用confirm!
或仅将confirmed_at
设置为任何日期来手动激活用户。
这是一种相当取巧的方法,但应该可以正常工作。
参考链接:confirmable.rb
我想要在以后的参考中添加一点内容,自从Devise 2.2版本以来,现在也有一个skip_confirmation_notification!
方法可用,它基本上执行了Matheus帖子中重新定义方法所做的所有事情。