我想在用户删除他的账户时通知管理员,我的想法是使用before_destroy验证从模型内发送电子邮件。我的想法是使用before_destroy验证从模型中发送一封邮件。
这可能最好在控制器中完成,但我不想将devise控制器子类化,因为我认为我可能会破坏一些东西。
问题是模型不能访问current_user,这是我首先想到的如何 "获取 "相应的用户账户。但是,模型必须以某种方式知道哪个用户账户是要被销毁的,对吗? 所以必须有某种变量被传递。
我研究了github的devise控制器,似乎所有的事情都是通过 "资源 "来完成的。
https:/github.comataformatecdeviseblobmasterappcontrollersdeviseregistrations_controller.rb。
我不明白最后一部分,我怎么能访问id或用户对象?
简单地添加一个钩子在你的模型和发送邮件。
class User < ActiveRecord::Base
before_destroy :notify_admin
private
def notify_admin
YourMailer.user_destroyed(self).deliver
end
end
自我 "将是你的current_user对象。
类似的东西可以工作。
class Users::RegistrationsController < Devise::RegistrationsController
def destroy
# You have access to current_user here
super
end
end