如何重新生成user.confirmation_token

时间:2014-01-13 23:25:51

标签: ruby-on-rails ruby-on-rails-3 devise

我正在寻找一种重新生成user.confirmation_token的方法。在我的应用中,我允许用户使用user.deleted_at停用其帐户。如果停用用户尝试重新激活其帐户,我想查看confirmation_instructions邮件,但需要设置确认令牌。有没有办法设计在RegistrationsController中重新生成user.confirmation_token?

由于

1 个答案:

答案 0 :(得分:0)

generate_confirmation_token模块中的Confirmable方法,该方法通过ActiveSupport::Concern应用于其他类。就像你在这里看到的那样:

https://github.com/plataformatec/devise/blob/master/lib/devise/models/confirmable.rb

在User对象上重新使用此方法应该执行Trick。

// generate_confirmation_token方法受到保护,因此无法从类外部调用。您可以运行send_confirmation_instructions生成令牌并发送注册邮件。

//如果gem的confirmable模块看起来像方法那样,请在源处观察。如果默认情况下不可能,则需要对gem进行costumize。您可以通过bash中的以下命令获取gemsets路径

rvm gemset path

然后在gems目录中,您将找到已安装的设备版本。在lib/devise/models/confirmable.rb文件中,您可以添加一个不受保护的方法来调用generate_confirmation_token方法。您只能从该模块中调用它,因为它受保护。