Rails 3与deviseauthentication – 如何手动创build一个用户?
我想手动创build新的User
,而不强迫他们validation他们的电子邮件地址。
这个想法是允许现有的用户自动添加他们的朋友,而不需要他们的注册。 这是我正在努力解决的商业案例。
Devise如何做到这一点?
skip_confirmation!
方法可用于任何可confirmable
模型。
@user = User.new params[:user] @user.skip_confirmation! # Sets confirmed_at to Time.now, activating the account @user.save
用户帐户将被激活。 如果你不想要的话,继续阅读。
devise使用条件callback来生成确认令牌并发送电子邮件。 callback只有在confirmation_required?
才会被调用confirmation_required?
返回true
。 重新定义你的模型:
def confirmation_required? false end
但是,这将使active_for_authentication?
方法总是返回true,因为需要考虑是否需要确认。 我们也必须重新定义:
def active_for_authentication? confirmed? || confirmation_period_valid? end
这样,帐户将保持不活动状态,并且不会发送确认电子邮件。 你将不得不手动激活用户通过调用confirm!
在logging上或只是将confirmed_at
设置为任何date。
这是相当黑客,但它应该工作。
供参考: confirmable.rb
我只是想添加以后的参考,因为Devise 2.2现在有一个skip_confirmation_notification!
方法也可以使用,它基本上做了一切,从马修斯的职位,而不重新定义在模型中的方法。