Rails devise before_destroy用户。

问题描述 投票:0回答:2

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

这可能最好在控制器中完成,但我不想将devise控制器子类化,因为我认为我可能会破坏一些东西。

问题是模型不能访问current_user,这是我首先想到的如何 "获取 "相应的用户账户。但是,模型必须以某种方式知道哪个用户账户是要被销毁的,对吗? 所以必须有某种变量被传递。

我研究了github的devise控制器,似乎所有的事情都是通过 "资源 "来完成的。

https:/github.comataformatecdeviseblobmasterappcontrollersdeviseregistrations_controller.rb。

我不明白最后一部分,我怎么能访问id或用户对象?

ruby-on-rails model devise callback
2个回答
2
投票

简单地添加一个钩子在你的模型和发送邮件。

class User < ActiveRecord::Base

  before_destroy :notify_admin


  private

  def notify_admin
    YourMailer.user_destroyed(self).deliver
  end

end

自我 "将是你的current_user对象。


1
投票

类似的东西可以工作。

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

    super
  end
end
© www.soinside.com 2019 - 2024. All rights reserved.