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 @@”.这些是您可以使用自定义值替换的标记. 当然,您可以重构此代码以将替换逻辑放入模型等中,以使其成为“干净的代码”. 我希望这有帮助. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |