Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 使用Desive通知管理员新注册_Ruby On Rails_Ruby On Rails 3_Devise - Fatal编程技术网

Ruby on rails 使用Desive通知管理员新注册

Ruby on rails 使用Desive通知管理员新注册,ruby-on-rails,ruby-on-rails-3,devise,Ruby On Rails,Ruby On Rails 3,Devise,我的所有用户都将被取消审批,直到他们被管理员批准,管理员将登录到该网站,将用户标记为已批准。我正在遵循这一点,这一点很好,但是在新用户注册后,我如何向管理员发送电子邮件,以便管理员知道并批准注册?在您的用户模型中,如何执行以下操作: after_create :send_admin_mail def send_admin_mail ###Send email stuff here end 您可能想使用 可能有一些内置的设计方式,但我什么也找不到。这基本上只是向您发送警报。自2020年起

我的所有用户都将被取消审批,直到他们被管理员批准,管理员将登录到该网站,将用户标记为已批准。我正在遵循这一点,这一点很好,但是在新用户注册后,我如何向管理员发送电子邮件,以便管理员知道并批准注册?

在您的用户模型中,如何执行以下操作:

after_create :send_admin_mail
def send_admin_mail
   ###Send email stuff here
end
您可能想使用


可能有一些内置的设计方式,但我什么也找不到。这基本上只是向您发送警报。

自2020年起

已更新文档以回答此问题。当然,您可以根据自己的需要随意修改

总结:

运行rails g mailer AdminMailer后。将app/mailers/admin\u mailer.rb修改为以下内容:

class AdminMailer < Devise::Mailer
    default from: 'from@example.com'
    layout 'mailer'

    def new_user_waiting_for_approval(email)
      @email = email
      mail(to: 'admin@email.com', subject: 'New User Awaiting Admin Approval')
    end
  end

最后,根据您的需要修改以下内容
views/admin\u mailer/new\u user\u waiting\u for\u approval.erb

我在Desive中找不到任何内容,但我也找不到“要求管理员在登录前激活帐户”文档,因此我认为值得一问。尽管如此,谢谢。我使用了创建后的回调。JeffC:对不起,你说的“我在Desive中找不到任何东西,但我也找不到“要求管理员在登录前激活帐户”文档是什么意思,所以我认为这值得一问——也就是说,你的问题上面有“
Desive docs here
”的链接——对不起,只是想确保我没有错过什么。。。我也在做同样的事情,但与ActionMailerI有问题,我也想知道如何做。不过,我不认为从model callback发送电子邮件是个好主意。它为模型类增加了另一个问题,当您从控制台(例如种子设定或开发)或在测试中创建用户时,可能会造成问题。欢迎提供指向解决方案的链接,但请确保您的答案在没有它的情况下是有用的:这样您的其他用户就会知道它是什么以及为什么存在,然后引用你链接到的页面最相关的部分,以防目标页面不可用。虽然此链接可以回答问题,但最好在此处包含答案的基本部分,并提供链接供参考。如果链接页面发生更改,仅链接的答案可能无效。-谢谢你们两位的反馈。我已经添加了摘要和链接。
  after_create :send_admin_mail
  def send_admin_mail
    AdminMailer.new_user_waiting_for_approval(email).deliver
  end