0

当用户删除他的帐户时,我不想通知管理员。我的想法是使用 before_destroy 验证从模型中发送电子邮件。

这可能在控制器中做得更好,但我不想子类化设计控制器,因为我认为我可能会破坏某些东西。

问题是模型无法访问current_user,这是我第一次想到如何“获取”对应的用户账号。但是模型必须以某种方式知道要销毁哪个用户帐户,对吗?所以必须传递某种变量。

我查看了 github 上的设计控制器,似乎一切都是使用“资源”完成的。

https://github.com/plataformatec/devise/blob/master/app/controllers/devise/registrations_controller.rb

我不知道最后一部分,我怎么能访问 id / 或 user 对象?

4

2 回答 2

2

简单地在你的模型中添加一个钩子并发送邮件..

class User < ActiveRecord::Base

  before_destroy :notify_admin


  private

  def notify_admin
    YourMailer.user_destroyed(self).deliver
  end

end

“自我”将是您的 current_user 对象..

于 2013-08-27T16:20:58.617 回答
1

像这样的东西可以工作:

class Users::RegistrationsController < Devise::RegistrationsController
  def destroy
    # You have access to current_user here

    super
  end
end
于 2013-08-27T16:01:07.420 回答