我正在寻找一种重新生成user.confirmation_token的方法。在我的应用程序中,我允许用户停用他们的user.deleted_at账户。如果停用用户尝试重新激活他们的帐户,我希望看到一封confirmation_instructions邮件,但需要设置一个确认令牌。有没有办法用devise在RegistrationsController中重新生成user.confirmation_token?
发布于 2014-01-14 07:34:28
Confirmable模块中有generate_confirmation_token方法,它通过ActiveSupport::Concern应用于其他类。就像你在这里看到的:
https://github.com/plataformatec/devise/blob/master/lib/devise/models/confirmable.rb
在你的User对象上重新部署这个方法应该能起到作用。
// generate_confirmation_token方法受到保护,因此无法从类外部调用它。您可以运行send_confirmation_instructions,它会生成令牌并发送注册邮件。
//如果gem的confirmable模块让它看起来像方法一样,请查看源代码。如果默认情况下这是不可能的,那么您需要对gem进行用户化。您可以通过bash中的以下命令获取gemsets路径
rvm gemset path然后在gems目录中,您将找到已安装的devise版本。在lib/devise/models/confirmable.rb文件中,可以添加调用generate_confirmation_token方法的不受保护的方法。您只能从该模块调用它,因为它是受保护的。
https://stackoverflow.com/questions/21103391
复制相似问题