设计Mailer,使用现有模块的自定义电子邮件模板

时间:2014-05-01 05:25:47

标签: ruby-on-rails ruby devise

我在轨道上使用红宝石,并设计。

我有一个senario wherin管理员可以将新用户添加到Web应用程序中,并提供他的电子邮件ID,并且在此senario下我将创建一个新用户。并且想要向用户电子邮件发出Auth-Token。因此,当他点击电子邮件中的链接时,系统会提示他发出新密码。

我忘了密码实施。

def create
    resource = User.send_reset_password_instructions(params[:user])
    if successfully_sent?(resource)
      render json: {status: :true},status: 200
    else
      render json: {status: :false, error: user.errors.full_messages.join(",")   } , status: 200
    end
  end

现在我的问题是我如何使用与忘记密码相同的逻辑,但是为管理员屏幕添加的用户使用不同的电子邮件模板。 ?

非常感谢。

1 个答案:

答案 0 :(得分:0)

当您只需将用户重定向到用户可以更改密码的设置页面时,为什么要将用户重定向到忘记密码页?

使用模板创建邮件程序操作,只需在管理员创建用户的方法中调用该邮件程序操作即可。 e.g:

如果您的邮件操作是:

def forgot_pass(email)
  mail(to: email, subject: 'Change your pass')
end

以及管理员创建用户的方法是:

def create_user
  # your logic
  YourMailerClass.forgot_pass(xyz@abc.com).deliver
end

有关邮件程序的详细信息,请参阅here