加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 允许用户在Rails中为ActionMailer创建自定义电

发布时间:2020-12-17 01:35:07 所属栏目:百科 来源:网络整理
导读:我想允许rails app的用户通过表单创建自己的电子邮件模板,并将其用作网站标准电子邮件模板表单,哪些邮件将被发送但我找不到任何教程,它还需要包含几个动态变量. 这样做是否有明确的方法? (因此用户将以引用变量的形式输入电子邮件文本 在发送之前将被评估)
我想允许rails app的用户通过表单创建自己的电子邮件模板,并将其用作网站标准电子邮件模板表单,哪些邮件将被发送但我找不到任何教程,它还需要包含几个动态变量.

这样做是否有明确的方法?

(因此用户将以引用变量的形式输入电子邮件文本
在发送之前将被评估)

解决方法

有很多方法可以实现它.这是一种方式.

首先,您需要将用户生成的电子邮件模板存储在数据库中.

CustomEmailTemplate.create(user_id: params[:user_id],template_body: params[:template_body])

什么时候发送模板的电子邮件,你会做类似的事情:

custom_values = { name: "Whatever",value: "nice" }
template = CustomEmailTemplate.find(template_id)
CustomerEmailer.send_email(template,custom_values).deliver

为了使它真正起作用,你需要在邮件中做这样的事情:

def send_email(template,custom_values)
    @template = template
    @custom_values = custom_values
    mail subject: "Your subject goes here.."
end

在send_email.html.erb中,执行以下操作:

<%= @template.template_text.gsub(/@@name@@/,@custom_values[:name]).gsub(/@@value@@/,@custom_values[:value]) %>

您会看到模板包含“@@ name @@”和“@@ value @@”.这些是您可以使用自定义值替换的标记.

当然,您可以重构此代码以将替换逻辑放入模型等中,以使其成为“干净的代码”.

我希望这有帮助.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读