AnA*_*ice 34 ruby ruby-on-rails registration devise ruby-on-rails-3
我想手动创建新的Users,而不强迫他们验证他们的电子邮件地址.
这个想法是允许现有用户自动添加他们的朋友,而无需他们的注册.对我正在努力解决的商业案例有意义.
如何用Devise实现这一目标?
Mat*_*ira 50
该skip_confirmation!方法适用于任何confirmable型号.
@user = User.new params[:user]
@user.skip_confirmation! # Sets confirmed_at to Time.now, activating the account
@user.save
Run Code Online (Sandbox Code Playgroud)
但是将激活用户帐户.如果你不想那样,继续阅读.
Devise使用条件回调生成确认令牌并发送电子邮件.只有在confirmation_required?返回时才会调用回调true.在您的模型上重新定义它:
def confirmation_required?
false
end
Run Code Online (Sandbox Code Playgroud)
但是,这将使该active_for_authentication?方法始终返回true,因为它需要考虑是否需要确认.我们也必须重新定义它:
def active_for_authentication?
confirmed? || confirmation_period_valid?
end
Run Code Online (Sandbox Code Playgroud)
这样,帐户将保持不活动状态,并且不会发送确认电子邮件.您必须通过调用confirm!记录或仅设置confirmed_at为任何日期来手动激活用户.
这是一个非常黑客,但它应该工作.
供参考:confirmable.rb
我只是想添加以供将来参考,因为自Devise 2.2现在有一个skip_confirmation_notification!方法可用,它基本上可以完成Matheus的所有内容,而无需重新定义模型中的方法.