我想手动创建新的用户,而不是强制他们验证他们的电子邮件地址。
这个想法是让现有用户无需注册即可自动添加他们的 friend 。这对我正在努力解决的业务案例很有意义。
如何使用 Devise 实现这一目标?
最佳答案
skip_confirmation! 方法可用于任何confirmable 模型。
@user = User.new params[:user]
@user.skip_confirmation! # Sets confirmed_at to Time.now, activating the account
@user.save
不过,用户帐户将被激活。如果您不想这样,请继续阅读。
Devise 使用条件回调来生成确认 token 并发送电子邮件。仅当 confirmation_required? 返回 true 时才会调用回调。在您的模型上重新定义它:
def confirmation_required?
false
end
但是,这将使 active_for_authentication? 方法始终返回 true,因为它会考虑是否需要确认。我们也必须重新定义它:
def active_for_authentication?
confirmed? || confirmation_period_valid?
end
这样,该帐户将保持不活动状态,并且不会发送确认电子邮件。您必须通过在记录中调用 confirm! 或将 confirmed_at 设置为任何日期来手动激活用户。
这是一个很好的 hack,但它应该可以工作。
供引用:confirmable.rb
关于ruby-on-rails - Rails 3 with Devise for Authentication - 如何手动创建用户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4599226/