我正在寻找一种重新生成user.confirmation_token的方法。在我的应用中,我允许用户使用user.deleted_at停用其帐户。如果停用用户尝试重新激活其帐户,我想查看confirmation_instructions邮件,但需要设置确认令牌。有没有办法设计在RegistrationsController中重新生成user.confirmation_token?
由于
答案 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
方法。您只能从该模块中调用它,因为它受保护。